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>
会这么做的原因可能在于,网页中已含有与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")%>。