EL 隱含物件


在 EL 中提供有 11 個隱含物件,其中除了 pageContext 隱含物件對應 PageContext 之外,其它隱含物件都是對應 Map 型態。

  • pageContext 隱含物件

    對應於 PageContext 型態,PageContext 本身就是個 JavaBean,只要是 getXxx() 方法,就可以用 ${pageContext.xxx} 來取得。

  • 屬性範圍相關隱含物件

    與屬性範圍相關的 EL 隱含物件有 pageScoperequestScopesessionScopeapplicationScope,分別可以取得使用 JSP 隱含物件 pageContextrequestsessionapplicationsetAttribute() 方法所設定的屬性物件。如果不使用 EL 隱含物件指定作用範圍,則預設從 pageScope 的屬性開始尋找。

    注意!EL 隱含物件 pageScoperequestScopesessionScopeapplicationScope 不等同於 JSP 隱含物件 pageContextrequestsessionapplication。EL 隱含物件 pageScoperequestScopesessionScopeapplicationScope 僅僅代表作用範圍。

  • 請求參數相關隱含物件

    與請求參數相關的 EL 隱含物件有 paramparamValues

    舉例來說,${param.user} 其作用相當於 <%= request.getParameter("user") %>paramValues 則相當於 request.getParameterValues(),可以取得表單多選項的值,由於傳回的是多個值, 你可以使用 [] 運算子來指定取得哪個元素,例如 ${paramValues.favorites[0]} 就相當於 <%= request.getParameterValues("favorites")[0] %>

  • 標頭(Header)相關隱含物件

    如果要取得使用者請求的表頭資料,則可以使用 headerheaderValues 隱含物件。例如 ${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") %>