1. 程式人生 > >EL表示式、EL隱式物件

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