EL表达式、EL隐式对象

EL表达式

1、作用

  在JSP中取得作用域、请求、标头与Cookie里的值,以及做一些简单的运算或判断。

2、环境

  直接编写。
  可以使用page指示元素的isELIgnored属性(默认是false),来设置JSP网页是否使用EL。也可以在web.xml中设置<el-ignored>标签为true来决定不使用EL。

<?xml version="1.1" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
              http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>Web Application</display-name>

    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <el-ignored>true</el-ignored>
        </jsp-property-group>
    </jsp-config>
</web-app>
View Code

  会这么做的原因可能在于,网页中已含有与EL类似的${}语法功能存在,例如使用了某个模板(Template)框架之类。

3、语法

  ${param.a + param.b}
  EL是使用${与}来包括所要进行处理的表达式,可使用点运算符(.)指定要存取的属性,使用加号(+)运算符进行加法运算。

4、EL隐式对象

(1)pageContext:对应于PageContext类型,PageContext本身就是个JavaBean,只要是getXxx()方法,就可以用${pageContext.xxx}来取得。

(2)与作用域相关的有pageScope、requestScope、sessionScope与applicationScope,分别可以取得对应作用域中已设置的值。如果不指定作用范围,则默认从pageScope的属性开始寻找。

  EL隐式对象pageScope、requestScope、sessionScope与applicationScope不等同于JSP隐式对象pageContext、request、session与application。EL隐式对象pageScope、requestScope、sessionScope与applicationScope仅仅代表作用范围。

(3)与请求参数相关的有param与paramValues。

  ${param.user}作用相当于<%=request.getParameter("user")%>
  ${paramValues. favorites[0]}相当于<%= request.getParameterValues("favorites")[0] %>。

(4)与Header相关的有header、headerValues。

  ${header["User-Agent"]}相当于<%=request.getHeader("User-Agent")%>

(5)cookie隐式对象可以用来取得已设置的Cookie值。如果在Cookie中设置了username属性,则可以使用${cookie.username}来取得值。

(6)initParam初始参数隐式对象,可以用来取得web.xml中设置的ServletContext初始参数,也就是在<context-param>中设置的初始参数。

  ${initParam.initCount}的作用相当于<%= servletContext.getInitParameter("initCount")%>。

猜你喜欢

转载自www.cnblogs.com/Mike_Chang/p/10085303.html