码迷,mamicode.com
首页 > Web开发 > 详细

JSP中的EL

时间:2016-05-17 22:28:18      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

1.为什么要使用EL

  使用<jsp:getProperty>,只能访问bean属性的性质,不能访问嵌套性质。例如一个含有Dog对象的Person对象。

技术分享

技术分享

  当然使用脚本可以工作,但是如果不想使用脚本呢?EL(表达式语言)可以使我们不受脚本的限制。

技术分享

2.使用(.)操作符和[]操作符

  使用.操作符时,第一个变量可以是一个隐式对象,也可以是一个属性。对应的,点号右边可以使一个映射键,也可以是一个bean性质。

技术分享

技术分享

  只有当点号邮编是左边变量的一个映射键或bean性质时,点号操作符才能正常工作。如果左边是一个数组或List,或者不遵循正常的java命名规则(例如,foo.Person等类似于类名的命名),点号无法正常使用,[]是更好的点号。

技术分享

  可以这样访问元素技术分享

技术分享

  可以这样访问元素技术分享

  如果中括号左边是一个数组或List,而且索引是一个String直接量,那么这个索引会强制转换为int。

  上面的两种访问方法与下面的等价

  技术分享 

  技术分享

3.EL隐式对象

  EL隐式对象与JSP隐式对象不同,除了pageContext是真正的引用之外,其他隐式对象都是简单的Map(名/值对)。

技术分享

4.Map作用域对象和属性绑定的对象

  使用Map,只能获得相应属性,而不能获得对象的方法。不过幸好有pageContext是真正的对象引用,可是使用它来获得更多的信息。

  比如,想要获得request对象的method属性,不能使用

  技术分享

  而要使用

  技术分享

5.作用域隐式对象的其他作用

  如果有不遵循java命名规则的String名作为属性,例如

  技术分享

  那么使用起来就有麻烦,容器会把foo当成某个作用域的属性,而且他有一个person性质,但是容器永远也找不到一个foo属性:

  技术分享

  使用作用域对象,就能使用[]操作符,这样就算是不遵循java命名规则的Sting名也能顺利使用:

  技术分享

6.禁用EL

  默认情况下EL是开启的,如果希望JSP忽略EL,必须显式地指出。所谓的禁用,只是将EL表达式以文本的方式输出:

  技术分享

  禁用后:

  技术分享

  page指令优先于DD设置。

  在页面中也可以禁用个别表达式,只需要在不需要解析的EL表达式的“$”符号前加入一个反斜杠就行,如"\$"。

JSP中的EL

标签:

原文地址:http://www.cnblogs.com/juaner767/p/5503304.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!