JSF入门六(JSF Expression Language)

本文转载自:

http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2630

 

JSF EL是以#开始 ,将变量或运算式放置在 { 与 } 之间,例如:#{someBeanName}

 

变量名称可以是faces-config.xml中定义的名称 ,如果是Bean的话,可以通过使用 '.' 运算符来存取它的属性,例如:

<f:view>
<h:outputText value="#{userBean.name}"/>
</f:view>

EL的变量名也可以程序执行过程中所声明的名称,或是JSF EL预定义的隐含对象,例如下面的程序使用param隐含对象来取得使用者输入的参数:

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html; charset=GB2312"%>
<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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值