Day 13 EL表达式

    xiaoxiao2021-03-26  24

    一.EL表达式

    1.EL语法结构

    1)它最大的特点就是使用上很方便。

     

    ${sessionScope.user.sex}

     

     

    所有EL 都是以 ${ 为起始、以} 为结尾的。上述EL 范例的意思是:从 Session 的范围中,取得用户的性别。假若依照之前JSP Scriptlet 的写法如下:

     

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

     

    String sex = user.getSex( );

    EL 提供 . 和 [ ] 两种运算符来存取数据。下列两者所代表的意思是一样的:

     

    ${sessionScope.user.sex}

     

    等于

     

    ${sessionScope.user["sex"]}

     

    2). 和 [ ] 也可以同时混合使用,如下: ${sessionScope.shoppingCart[0].price}

    3)以下两种情况,两者会有差异:

     

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

     

    ${user.My-Name }

     

    2.EL变量

    EL 存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为 username的变量。因为我们并没有指定哪一个范围的 username,所以它的默认值会先从 Page 范围找,假如找不到,再依序到 Request、Session、Application 范围。假如途中找到 username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传 null

    JSP2.0 技术手册

     

    表 6-1

     

     

     

    属性范围

     

    在 EL 中的名称

    Page

     

    PageScope

     

     

     

    Request

     

    RequestScope

     

     

     

    Session

     

    SessionScope

     

     

     

    Application

     

    ApplicationScope

     

     

     

     

    自动搜索顺序

    3.自动类型转换

    二、EL 隐含对象 

    1. 与范围有关的隐含对象 

    applicationScope,它们基本上就和JSP的pageContext、request、session和application一样。不过必须注意的是,这四个隐含对象只能用来取得范围属性值,即JSP 中的getAttribute(String name),却不能取得其他相关信息  applicationScope   sessionScope   requestScope   pageScope  2. 与输入有关的隐含对象   param   paramValues 

    例“”JAVA代码:

    request.getParameter(String name)  request.getParameterValues(String name)  在EL 中则可以使用param 和paramValues 两者来取得数据。  ${param.name}  ${paramValues.name}  这里 param 的功能和 request.getParameter(String name) 相同,而 paramValues 和 request.getParameterValues(String name)相同 3. 其他隐含对象   cookie   header   headerValues   initParam   pageContext :

    ${pageContext.request.queryString} 取得请求的参数字符串  ${pageContext.request.requestURL} 取得请求的URL,但不包括请求之参数字符串  ${pageContext.request.contextPath} 服务的web application的名称  ${pageContext.request.method} 取得HTTP 的方法(GET、POST)  ${pageContext.request.protocol} 取得使用的协议(HTTP/1.1、HTTP/1.0)  ${pageContext.request.remoteUser} 取得用户名称  ${pageContext.request.remoteAddr } 取得用户的IP 地址  ${pageContext.session.new} 判断session 是否为新的,所谓新的session, 表示刚由server 产生而client尚未使用  ${pageContext.session.id} 取得session 的ID  ${pageContext.servletContext.serverInfo} 取得主机端的服务信息 

    三、EL 算术运算符 

    1.+    加   :  ${ 17 + 5 } 22  2.*     乘 : ${ 17 * 5 } 85  3./ 或 div 除: ${ 17 / 5 } 或 ${ 17 div 5 } 3  4.% 或 mod : 余数 ${ 17 % 5 } 或 ${ 17 mod 5 } 2  四、EL 关系运算符 

    1.= = 或 eq :等于 ${ 5 = = 5 } 或 ${ 5 eq 5 } true  2.!= 或 ne: 不等于 ${ 5 != 5 } 或 ${ 5 ne 5 } false  3.< 或 lt :小于 ${ 3 < 5 }或 ${ 3 lt 5 } true  4.> 或 gt :大于 ${ 3 > 5 }或 ${ 3 gt 5 } false  5.<= 或 le:小于等于 ${ 3 <= 5 }或 ${ 3 le 5 } true  6.>= 或 ge :大于等于 ${ 3 >= 5 }或 ${ 3 ge 5 } false 

    五、EL 逻辑运算符 

    1.&& 或 and :交集 ${ A && B } 或 ${ A and B } true / false  2.|| 或 or :并集 ${ A || B } 或 ${ A or B } true / false  3.! 或 not :非 ${ !A } 或 ${ not A } true / false 

    六、EL 其他运算符 

    1.Empty 运算符:Empty运算符主要用来判断值是否为null或空的,例如:  ${ empty param.name }  2.条件运算符 :${ A ? B : C} 

    3. ( ) 括号运算符 :括号运算符主要用来改变执行优先权

    七、EL Functions 

    EL函数的语法如下:  ns:function( arg1, arg2, arg3 …. argN)  其中ns 为前置名称(prefix),它必须和taglib指令的前置名称一样

    转载请注明原文地址: https://ju.6miu.com/read-650102.html

    最新回复(0)