JSF Expression Language 搭配 JSF 标签来使用,是用来存取数据对象的一个简易语言。
JSF EL是以#开始,将变量或表达式放置在
Unknown macro: { 与 }
之间,例如:
变量名称可以是faces-config.xml中定义的名称,如果是Bean的话,可以透过使用 '.' 运算子来存取它的属性,例如:
...
<f:view>
<h:outputText value="#{userBean.name}"
/>
</f:view>
...
在JSF卷标的属性上," 与 " (或'与')之间如果含有EL,则会加以运算,您也可以这么使用它:
...
<f:view>
名称, 年龄:<h:outputText
value="#{userBean.name}, #{userBean.age}"
/>
</f:view>
...
一个执行的结果可能是这样显示的:
EL的变量名也可以程序执行过程中所宣告的名称,或是JSF EL预设的隐含对象,例如下面的程序使用param隐含对象来取得使用者输入的参数:
<%@ taglib uri="http:
prefix="f" %>
<%@ taglib uri="http:
prefix="h" %>
<%@page contentType="text/html; charset=Big5"
%>
<html>
<head>
<title></title>
</head>
<body>
<f:view>
<b> 您好, <h:outputText value="#{param.name}"
/> </b>
</f:view>
</body>
</html>
param是JSF
EL预设的隐含对象变量,它代表request所有参数的集合,实际是一个java.util.Map型态对象,JSF所提供的隐含对象,大致上对应于JSP隐含物件
,不过JSF隐含对象移除了pageScope与pageContext,而增加了facesContext与view,它们分别对应于
javax.faces.context.FacesContext与javax.faces.component.UIViewRoot。
对于Map型态对象,我们可以使用 '.' 运算子指定key值来取出对应的value,也可以使用 [ 与 ] 来指定,例如:
...
<f:view>
<b> 您好, <h:outputText value="#{param['name']}"
/> </b>
</f:view>
...
在 [ 与 ] 之间,也可以放置其它的变量值,例如:
...
<f:view>
<h:outputText value="#{someBean.someMap[user.name]}"
/>
</f:view>
...
如果变量是List型态或数组的话,则可以在 [] 中指定索引,例如:
....
<f:view>
<h:outputText value="#{someBean.someList[0]}"
/>
<h:outputText value="#{someBean.someArray[1]}"
/>
<h:outputText
value="#{someBean.someListOrArray[user.age]}"
/>
</f:view>
....
您也可以指定字面常数,对于true、false、字符串、数字,JSF EL会尝试进行转换,例如:
....
<h:outputText value="#{true
}"
/>
....
<h:outputText value="#{'This is a test'}"
/>
....
如果要输出字符串,必须以单引号 ' 或双自变量 " 括住,如此才不会被认为是变量名称。
在宣告变量名称时,要留意不可与JSF的保留字或关键词同名,例如不可取以下这些名称:
true
false
null
div mod and or not eq ne lt gt le ge instanceof
empty
使用EL,您可以直接实行一些算术运算、逻辑运算与关系运算,其使用就如同在一般常见的程序语言中之运算。
算术运算子有:加法 (+), 减法 (-), 乘法 (*), 除法 (/ or div) 与余除 (% or mod)
。下面是算术运算的一些例子:
表达式
结果
#{1} |
1 |
#{1 + 2} |
3 |
#{1.2 + 2.3} |
3.5 |
#{1.2E4 + 1.4} |
12001.4 |
#{-4 - 2} |
-6 |
#{21 * 2} |
42 |
#{3/4} |
0.75 |
#{3 div 4} |
0.75,除法 |
#{3/0} |
Infinity |
#{10%4} |
2 |
#{10 mod 4} |
2,也是余除 |
#{(1==2) ? 3 : 4} |
4 |
如同在Java语法一样 ( expression ? result1 :
result2)是个三元运算,expression为true显示result1,false显示result2。
逻辑运算有:and(或&&)、or(或!!)、not(或!)。一些例子为:
表达式
结果
#{true and false} |
false |
#{true or false} |
true |
#{not true} |
false |
关系运算有:小于Less-than (< or lt)、大于Greater-than (> or
gt)、小于或等于Less-than-or-equal (<= or le)、大于或等于Greater-than-or-equal (>= or
ge)、等于Equal (== or eq)、不等于Not Equal (!= or
ne),由英文名称可以得到lt、gt等运算子之缩写词,以下是Tomcat的一些例子:
表达式
结果
#{1 < 2} |
true |
#{1 lt 2} |
true |
#{1 > (4/2)} |
false |
#{1 > (4/2)} |
false |
#{4.0 >= 3} |
true |
#{4.0 ge 3} |
true |
#{4 <= 3} |
false |
#{4 le 3} |
false |
#{100.0 == 100} |
true |
#{100.0 eq 100} |
true |
#{(10*10) != 100} |
false |
#{(10*10) ne 100} |
false |
左边是运算子的使用方式,右边的是运算结果,关系运算也可以用来比较字符或字符串,按字典顺序来决定比较结果,例如:
表达式
结果
#{'a' < 'b'} |
true |
#{'hip' > 'hit'} |
false |
#{'4' > 3} |
true |
EL运算子的执行优先级与Java运算子对应,如果有疑虑的话,也可以使用括号()来自行决定先后顺序。
相关推荐
3. **JSF Expression Language (EL)** EL是JSF中的一个重要组成部分,它允许在页面中直接访问后台Bean的属性,实现数据绑定。在"JSF Expression Language.htm"中,你会看到如何使用EL表达式来简化页面和Bean之间的...
JSF Expression Language是用于访问和操作后台Bean属性、方法以及上下文数据的语言。EL表达式可以在JSF页面上直接嵌入,用于动态地生成内容或控制组件行为。 4. 国际化 JSF支持国际化,允许开发者为不同的语言和...
JSF Expression Language 是一种轻量级的脚本语言,用于在JSF应用中访问和操作Java对象。EL允许你在JSP或XHTML页面中直接引用JavaBean属性,执行基本的算术和逻辑运算,以及调用方法。 #### 1.6 国际化信息 JSF ...
**JSF Expression Language (EL)**:是JSF中的一个重要特性,它是一种简洁的语言,用于在页面上访问和操作Bean的属性。例如,`#{someBeanName}`是EL表达式,可以在JSF标签中直接引用Bean的属性。 **JSF标签**:JSF...
o JSF Expression Language o 国际化讯息 Managed Beans JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档案中,您只要修改组态档案,就可以修改 Bean 之间的相依关系。 o Backing Beans o ...
3. **表达式语言(EL)**:JSF Expression Language(EL)允许在页面上引用JavaBean或其他服务器端对象的属性,简化了数据绑定。 4. **Faces Servlet**:JSF框架的核心是FacesServlet,它负责处理所有JSF相关的HTTP...
JSF框架中文教程,包括JSF入门、Backing Beans、Beans 上的 List, Map、JSF Expression Language、JSF 生命周期、Phase 事件、TableModel 类别、等有关jsf的知识。
JSF Expression Language (EL)** EL是JSF中用于在视图层引用后台Bean属性的表达式语言。在Facelets模板中,EL通常用来绑定组件值到Managed Bean的属性。在DEMO中,EL的使用会帮助我们理解数据如何在前后台之间流动...
部分内容截取: 1. 入门 1.1 简介JSF 1.2 第一个JSF程序 1.3简单的导航 Navigation 1.4导航规则设置 1.5 JSF Expression Language 1.6国际化信息 ......
4. **JSF Expression Language (EL)**:EL是一种强大的表达式语言,用于在视图层与模型层之间进行数据绑定和方法调用。 5. **Managed Beans**:Managed Beans是JSF中的业务逻辑载体,它们在JSF上下文中被管理和实例...
- **1.5 JSF Expression Language (EL)**:探讨JSF表达式语言的作用,如何使用EL来进行数据绑定、访问Bean属性及执行简单的运算。 - **1.6 国际化信息**:学习如何在JSF应用中实现多语言支持,包括消息资源文件的...
**JSF Expression Language (EL)** 是一种轻量级的语言,用于访问和操纵JavaBeans属性。它在JSF中用于将页面元素与后端Managed Beans进行绑定,从而实现数据的双向绑定。 **EL示例**: ```html ``` 在这个例子中,...
**1.5 JSF Expression Language (EL)** - **语言基础**: - EL是一种简洁的语言,用于在JSF组件中表达变量和方法调用。 - 介绍EL的基本语法、变量作用域和常见用法。 **1.6 国际化信息** - **国际化支持**: - ...
1.1 简介 JSF 1.2 第一个 JSF 程序 1.3 简单的导航 Navigation 1.4 导航规则设置 1.5 JSF Expression Language 1.6 国际化信息 2. Managed Beans
1.5 JSF Expression Language JSF框架提供了一个表达式语言,允许开发者在JSF页面中使用表达式。JSF表达式语言支持以下几种运算符: * 算术运算符:+、-、*、/等 * 比较运算符:==、!=、>、<等 * 逻辑运算符:&&、...
Expression Language(EL)是Java EE平台中的一个关键组件,它用于在JSP、JSF等Web应用程序中方便地访问和操作服务器端的数据。EL 3.0是该语言的一个重大更新,引入了许多新特性和改进,提升了开发人员的效率和代码...
### 1.5 JSF Expression Language (EL) EL是JSF中的表达式语言,用于在JSF页面上访问和操作Bean的属性和方法。EL表达式可以出现在组件的属性值中,用于动态地获取或设置值。 ### 1.6 国际化信息 JSF支持多语言...