第六章expression language 清晨之风制作.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章expression language 清晨之风制作

JSP2.0 技术手册 第六章 Expression Language 清晨之风制作 6-1 EL 简介 6-1 EL 简介 EL 全名为Expression Language,它原本是JSTL 1.0 为方便存取数据所自定义的语言。当时EL 只能在JSTL 标签中使用,如下: c:out value=${ 3 + 7} 程序执行结果为10。但是你却不能直接在JSP 网页中使用: pHi ! ${ username }/p 到了JSP 2.0 之 ,EL 已经正式纳入成为标准规范之一。因此,只要是支持Servlet 2.4 / JSP 2.0 的Container,就都可以在JSP 网页中直接使用EL 了。 除了JSP 2.0 建议使用EL 之外,JavaServer Faces( JSR-127 ) 也考虑将 EL 纳入规范,由此 可知,EL 如今已经是一项成熟、标准的技术。 注意 假若您所用的Container 只支持Servlet 2.3/JSP 1.2,如:Tomcat 4.1.29,您就不能在 JSP 网页中直接使用EL,必须安装支持Servlet 2.4 / JSP 2.0 的Container。 6-2 EL 语法 EL 语法很简单,它最 的特点就是使用上很方便。接下来介绍EL 主要的语法结构: ${sessionScope.user.sex} 所有EL 都是以 $ { 为起始、以} 为结尾的。上述EL 范例的意思是:从Session 的范围中,取得 用户的性别。假若依照之前JSP Scriptlet 的写法如下: User user = (User)session.getAttribute(user); String sex = user.getSex( ); Java 爱好者 制作 JSP2.0 技术手册 两者相比较之下,可以发现EL 的语法比传统JSP Scriptlet 更为方便、简洁。 6-2-1 .与 [ ] 运算符 EL 提供 . 和 [ ] 两种运算符来存取数据。下列两者所代表的意思是一样的: ${sessionScope.user.sex} 等于 ${sessionScope.user[sex]} . 和 [ ] 也可以同时混合使用,如下: ${sessionScope.shoppingCart[0].price} 回传结果为shoppingCart 中第一项物品的价格。 不过,以下两种情况,两者会有差异: (1) 当要存取的属性名称中包含一些特殊字符,如 . 或 –等并非字母或数字的符号,就一定 要使用 [ ],例如: ${user.My-Name } 上述是不正确的方式,应当改为: ${user[My-Name] } (2) 我们来考虑下列情况: ${sessionScope.user[data]} 此时,data 是一个变量,假若data 的值为sex 时,那上述的例子等于$ {sessionScope.user.sex} ; 假若data 的值为name时,它就等于$ {sessionS} 。因此,如果要动态取值时,就可以 用上述的方法来做,但 . 无法做到动态取值。 接下来,我们更详细地来讨论一些情况,首先假设有一个EL: Java 爱好者 制作 JSP2.0 技术手册 ${expr-a[expr-b]} ( 1) 当expr-a 的值为null 时,它会回传null 。 (2) 当expr-b 的值为null 时,它会回传null 。 (3) 当expr-a 的值为一Map 类型时: ● 假若 !value-a.containsKey(value-b)为真,则回传null。 ● 否则回传value-

文档评论(0)

wangyueyue + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档