EL表达式详解:取值与方法表达式
需积分: 9 180 浏览量
更新于2024-07-28
收藏 139KB DOC 举报
"这篇文档主要介绍了EL表达式的基本语法,包括评估表达式(eval-expression)、字面量表达式(literal-expression)以及组合表达式(Composite expressions)。它详细讲解了EL表达式的两种形式 `${expr}` 和 `#{expr}` 的区别,以及它们在J2EE层面上的计算时机。文档还提到了取值表达式和方法表达式的概念,并通过实例展示了如何在HTML和JSF组件中使用EL表达式进行数据绑定和方法调用。"
EL(Expression Language)表达式是一种强大的模板语言,常用于JSP和JavaServer Faces(JSF)应用中,用于访问和操作JavaBeans或其他数据源中的属性和方法。EL表达式有两种基本形式:评估表达式和字面量表达式。
1.1.1 评估表达式(Eval-Expression)
评估表达式通常以`${expr}`或`#{expr}`的形式出现。两者在解析和计算上是相同的,但根据J2EE层的规范,它们的计算时机不同。`${expr}`在JSP页面编译时计算,称为直接计算;而`#{expr}`在实际需要时计算,称为延迟计算,如在JSF的视图渲染或事件处理阶段。
1.1.1.1 取值表达式
当评估表达式解析为取值表达式时,它可以表示左值和右值。右值是等号右侧的表达式,例如在HTML输入字段中设置`value`属性的示例:
```html
<input type="text" value="${customer.name}" />
```
这里的`${customer.name}`就是取值表达式的右值,它将获取`customer`对象的`name`属性值。
在JSF中,`#{expr}`形式的评估表达式常用于数据绑定,如在`h:inputText`组件中:
```html
<h:inputText id="email" value="#{checkOutFormBean.email}" size="25" maxlength="125" validator="#{checkOutFormBean.validateEmail}" />
```
这里的`#{checkOutFormBean.email}`是取值表达式,它将`checkOutFormBean`的`email`属性与输入框的值关联。
1. 方法表达式
EL表达式还可以用来调用对象的方法,例如`#{expr}`形式可以用于JSF验证器:
```html
<h:inputText ... validator="#{checkOutFormBean.validateEmail}" />
```
这里`#{checkOutFormBean.validateEmail}`就是一个方法表达式,它会在表单提交时调用`checkOutFormBean`的`validateEmail`方法。
EL表达式支持组合表达式,即多个表达式可以组合在一起,提供更复杂的逻辑操作。通过这些基本元素,开发者可以构建出强大的动态视图和控制逻辑,实现数据的便捷访问和处理。
109 浏览量
2025-01-09 上传
2025-01-09 上传
2025-01-10 上传
2025-01-09 上传
2025-01-09 上传
2025-01-09 上传
2025-01-09 上传
_Mr_Yang_
- 粉丝: 16
- 资源: 98
最新资源
- 实验6,c语言编程修改编译器源码,c语言
- 最漂亮的LED花朵,一朵永远盛开的机械郁金香-电路方案
- org.eclipse.jgit.pgm-3.2.0.0.2-UNOFFICIAL-ROBERTO-RELEASE.zip
- adminli
- 简单平衡车代码.zip
- furima-34554
- org.eclipse.jgit.pgm-3.2.0.0.2-UNOFFICIAL-ROBERTO-RELEASE.zip
- smartcat-serge-sync-plugin:Smartcat平台的持续本地化解决方案
- Adithya2008-C-29-pro-2
- 8.3 使用注册表-----
- 老外开发项目—STM32F429设计的mini示波器源代码共享-电路方案
- automatic_bicycle:自主自行车算法
- grib-rs:用于Rust的GRIB格式解析器
- ProjetoCalculadora:用JavaScript制作的简单计算器
- 基于HTML实现的儿童乐园蓝色可爱的小学网站模板5589(css+html+js+图样).zip
- sew 31c系列变频器说明 PPT.rar