在 EL 中提供有 11 個隱含物件,其中除了 pageContext
隱含物件對應 PageContext
之外,其它隱含物件都是對應 Map
型態。
pageContext
隱含物件對應於
PageContext
型態,PageContext
本身就是個 JavaBean,只要是getXxx()
方法,就可以用${pageContext.xxx}
來取得。屬性範圍相關隱含物件
與屬性範圍相關的 EL 隱含物件有
pageScope
、requestScope
、sessionScope
與applicationScope
,分別可以取得使用 JSP 隱含物件pageContext
、request
、session
與application
的setAttribute()
方法所設定的屬性物件。如果不使用 EL 隱含物件指定作用範圍,則預設從pageScope
的屬性開始尋找。注意!EL 隱含物件
pageScope
、requestScope
、sessionScope
與applicationScope
不等同於 JSP 隱含物件pageContext
、request
、session
與application
。EL 隱含物件pageScope
、requestScope
、sessionScope
與applicationScope
僅僅代表作用範圍。請求參數相關隱含物件
與請求參數相關的 EL 隱含物件有
param
與paramValues
。舉例來說,
${param.user}
其作用相當於<%= request.getParameter("user") %>
。paramValues
則相當於request.getParameterValues()
,可以取得表單多選項的值,由於傳回的是多個值, 你可以使用[]
運算子來指定取得哪個元素,例如${paramValues.favorites[0]}
就相當於<%= request.getParameterValues("favorites")[0] %>
。標頭(Header)相關隱含物件
如果要取得使用者請求的表頭資料,則可以使用
header
或headerValues
隱含物件。例如${header["User-Agent"]}
相當於<%= request.getHeader("User-Agent") %>
。headerValues
則作用相當於request.getHeaders()
方法。cookie
隱含物件cookie
隱含物件可以用來取得使用者的 Cookie 設定值。如果你在 Cookie 中設定了username
屬性,則可以使用${cookie.username}
來取得值。初始參數隱含物件
initParam
可以用來取得 web.xml 中設定的ServletContext
初始參數,也就是在<context-param>
中設定的初始參數。例如${initParam.initCount}
的作用,相當於<%= servletContext.getInitParameter("initCount") %>
。