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"View Codexsi: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")%>。