首页 > 代码库 > EL表达式

EL表达式

1. Expression Language:

    技术分享    技术分享

2. EL默认对象:

    技术分享      技术分享

3. EL表达式使用格式:

    技术分享

4. 运算符:

    技术分享       技术分享

    技术分享       技术分享

5. EL 语法很简单,它最大的特点就是使用上很方便。例如:${sessionScope.user.sex}。所有EL都是以 ${ 为起始、以} 为结尾的。上述EL范例的意思是:

    从Session的范围中,取得用户的性别。假若依照之前JSP Scriptlet的写法如下:

    User user =(User)session.getAttribute("user");

    String sex = user.getSex( );

6. EL 提供 . 和 [ ] 两种运算符来存取数据。下列两者所代表的意思是一样的:${sessionScope.user.sex} 等于 ${sessionScope.user["sex"]}, . 和 [ ] 也可以同时混合使用

7. []中的参数若有双引号表示一个具体值,[]中参数若无双引号,表示变量

8. . 和 [ ]之间的差异:

     1). 当要存取的属性名称中包含一些特殊字符,如 . 或 – 等并非字母或数字的符号,就一定要使用 [ ],

           例如:${user.My-Name } 上述是不正确的方式,应当改为:${user["My-Name"] }

      2). 我们来考虑下列情况:${sessionScope.user[data]} 。此时,data 是一个变量,假若data的值为"sex"时,那上述的例子等于 ${sessionScope.user.sex};

            假若data 的值为"name"时,它就等于${sessionScope.user.name}。因此,如果要动态取值时,就可以用上述的方法来做,但 . 无法做到动态取值。

9. EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。因为我们并没有指定哪一个范围的username,所以它的

     默认值会先从Page 范围找,假如找不到,再依序到Request、Session、Application范围。假如途中找到username,就直接回传,不再继续找下去,但是假如全部

     的范围都没有找到时,就回传null

10. EL变量:

       技术分享            技术分享

11. 自动转变类型:EL除了提供方便存取变量的语法之外,它另外一个方便的功能就是:自动转变类型 。${param.count + 20} 会将传来的count自动转化为数值

12. EL保留字:

      技术分享
13. EL隐含对象:

     技术分享    技术分享

14. 与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope, 它们基本上就和JSP的pageContext、

       request、session和application一样,不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即JSP中的getAttribute(String name),却不能取得

      其他相关信息,例如:JSP中的request对象除可以存取属性之外,还可以取得用户的请求参数或表头信息等等。但是在EL中,它就只能单纯用来取得对应范围

       的属性值,例如:我们要在session 中储存一个属性,它的名称为username,在JSP 中使用session.getAttribute(“username”) 来取得username 的值,

      但是在EL中,则是使用${sessionScope.username}来取得其值的

15. ${param.name}:param 的功能和request.getParameter(String name)相同, ${paramValues.name}:paramValues和

       request.getParameterValues(String name)相同

16. 我们可以使用 ${pageContext}来取得其他有关用户要求或页面的详细信息:

       技术分享        技术分享

17.  页面如果要显示EL表示时,需要进行转义。例如:\${param.username}

EL表达式