[关闭]
@Ablechen 2019-07-11T09:28:35.000000Z 字数 2503 阅读 426

EL表达式的使用


EL表达式的作用

  1. 简化jsp页面中嵌入的java代码
  2. 使得jsp页面更加整洁

基本语法

  1. 以"${"开头,以"}"结尾

    1. ${'这是EL'}
属性范围 EL中名称 EL表达式实例 说明
Page pageScope ${pageScope.name} 取出Page范围的name变量
Request requestScope ${requestScope.name} 取出Request范围的name变量
Session sessionScope ${sessionScope.name} 取出Session范围的name变量
Application applicationScope ${applicationScope.name} 取出application范围的name变量

默认情况下,查找name的顺序为Page, Request, Session, Application, 优先小作用域范围
比较特殊的一点是,当查找结果为null的时候返回的是空, 而不是一个错误
其中pageScope, requestScope, sessionScope, applicationScope为EL的隐含对象

EL中的比较运算符, 逻辑运算符, 条件运算符

和javad等语言中的一样

  1. >, <, =, >=, <=
  2. &&, ||, !
  3. ?

EL的隐含内置对象

pageContext, pageScope, requestScope, sessionScope, applicationScope, param, paramValues, header, headerValues, cookie, initParam

  1. pageContext对象
    用来获得其他实例对象以及他们的属性值。但是又不同于jsp中的pageContext对象,EL中的对象只能用属性值来获得需要的对象,而JSP中通过使用方法来获得的。
  2. 四种范围的对象
    pageScope, sessionScope, applicationScope, requestScope对象,只能用来获得属性值,而不能获得其他的信息。
  3. param和paramValues对象
param.namerequest.getParamparamValuesrequest.paramValues

这两个对象简化了在使用request传递的参数的过程,以前使用的时候必须使用<% java表达式 %>,现在只需

  1. name的值为: param.name ;
  2. names的值为: paramValues.names[0] paramValues.names[1] paramValues.names[2] ...
  1. cookie对象和initParam对象
    用于简化对cookie和初始值的获取
  1. ${cookie.name.value} //获得指定name的cookie
  2. cookie.getValue()//也是获得cookie
  3. <%
  4. Cookie[] cookies = request.getCookies() ;
  5. for(int i=0; i<cookies.length; i++){
  6. out.println(cookies[i].getValue());
  7. }
  8. %>

关于禁用EL的三种方法

  1. 使用"\"来禁用EL

    1. \${"hello world"}
  2. 使用page指定来指定当前页面禁止使用EL

    1. <@ page isEgnored="true">
  3. 通过配置xml文件来设定当前服务器禁止使用EL

  1. <jsp-config>
  2. <jsp-property-group>
  3. <url-pattern>*.jsp</url-pattern>
  4. <el-ignored>true</el-ignored>
  5. </jsp-property-group>
  6. </jsp-config>
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注