JSF EL表达式

下午勤勤恳恳的折腾了几个小时,终于跑通了第一个jsf。

原因居然是jboss5.1.0GA的默认的编译java版本是1.5,而我的jdk版本是1.7.

我注意到jsf的中的el表达式和jsp中的el表达式有所不同,就查了查资料总结一下JSF中的EL表达式。

 

首先是jsf中el表达式和jsp中el表达式的不同:

1.JSF用 #{}  JSP使用${}

2.JSF中EL表达式可以更新托管bean,JSP只能访问输出。

3.JSF的内置对象和JSP不一样。

4.jsf el表达式不支持JSP el的内嵌函数。

 

既然内置对象不同,我们看看有哪些不同:

JSP就不列举了9个内置,和几个隐式对象。

JSF中的有11个内置对象。

applicationScope,cookie,facesContext,header,headerValues,initParam,param,paramValues,

requestScope,sessionScope,view。

其他的不多说,和jsp不同的只有facesContext和view,

facesContext中包含所有相关信息每请求状态的处理一个JavaServer Faces请求及呈现相应的响应。一般不用它。

view可以用于获得当前视图的ID(viewId),获取当前视图所用绘制器的ID(renderKitId)以及获得访问当前视图的用户所使用的语言、国家选项。

 

JSF EL中的常用示例

#{xx.xxx}:访问或更新xx的xxx属性,如果xx是一个map对象那么xxx被认为是key,访问对应的value。

#{xx['xxx']}:跟上面一样。

 

#{xx[xxx]}:先对xxx求值,然后同上。

#{xx[#{xxx}]}:同上。

 

#{list[3]}:这个就不用解释了吧。

#{map['xx'].xxx}:访问或更新map中key为'xx'的对象的xxx属性。

 

#{user.name='xxx'?'true':'false'}:三目运算返回true或false。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值