1. 程式人生 > >轉:EL表示式的11個內建物件

轉:EL表示式的11個內建物件

原文地址:https://blog.csdn.net/qq_17045385/article/details/54799998

EL是JSP內建的表示式語言

JSP2.0開始,不讓再使用Java指令碼,而是使用EL表示式和動態標籤來代替Java指令碼

############EL替代的是<%=... %>,也就是說EL只能做輸出###########

EL可以輸出的東西都在11個內建物件中,11個內建物件,其中10個是Map,只有pageContext不是Map,它就是PageContext型別,EL所有內建物件如下:

 

pageScope:獲取pageContext域屬性,相當於pageContext.getAttribute("xxx")

requestScope:獲取request域屬性,相當於request.getAttribute("xxx")

sessionScope:獲取session域屬性,相當於session.getAttribute("xxx")

applicationScope:獲取application域屬性,相當於application.getAttribute("xxx")

param:對應引數,它是一個Map,其中key是引數,value是引數值,適用於單值的引數,相當於request.getParameter("xxx")

paramValues:對應引數,她是一個Map,其中key是引數,value是多個引數值,適用於多值的引數,相當於request.getParameterValues("xxx")

header:對應請求頭,它是一個Map,其中key表示頭名稱,value是單個頭值,適用於單值的請求頭,相當於request.getHeader("xxx")

headerValues:對應請求頭,它是一個Map,其中key表示頭名稱,value是多個頭值,適用於多值的請求頭,相當於request.getHeaders("xxx")

initParam:獲取web.xml中<context-param>內的引數,${ initParam.xxx},xxx就是<param-name>標籤內的值,進而得到<param-value>中的值

cookie:用於獲取cookie,Map<String,Cookie>,其中key是cookie的name,value是cookie物件,例如${cookie.JSESSIONID.value }就是獲取sessionId

pageContext:可以獲取JSP九大內建物件,相當於使用該物件呼叫getxxx()方法,例如pageContext.getRequest()可以寫為${pageContext.request)

      ######這也解釋了 為什麼要通過pageContext來獲取其他 jsp 內建物件

 

EL表示式在獲取Map的值或Bean的屬性值是,可以使用“點”的方法,也可以使用“下標”的方法。

${initParam.a}與${initParam['a']},它們是完成的東西相同的。但是,如果Map的鍵或Bean的屬性名中包含下劃線或橫崗時,那麼就必須使用“下標”方法,例如:${initParam['a_a']}
---------------------
作者:星空dream
來源:CSDN
原文:https://blog.csdn.net/qq_17045385/article/details/54799998
版權宣告:本文為博主原創文章,轉載請附上博文連結!

 

Jsp內建物件為什麼要通過pageContext獲取

最佳(實際並不)回答中,網友評論中的回答:

煩惱收發室  2017-06-06 22:06 request 和 pageContext 都是 JSP 的內建物件(9個物件),可在 JSP 指令碼內部直接使用 EL 用來代替指令碼,提供了11個內建物件。包含 pageContext,但是不包含 request pageContext 又可以獲取其他8個物件,又可以代理其他域。 所以再 EL 表示式內,需要這樣使用 btw,JSTL 是 EL 表示式的一種標籤形式的擴充套件   另外參考: JSP的學習(7)——九大隱式物件之pageContext物件 如果是寫JSP,其實在JSP頁面中是不能有Java程式碼的,所有的Java程式碼都需要使用自定義標籤來封裝,因此,其實這些方法都是在自定義標籤中使用,而在自定義標籤中,我們就無法使用另外八大隱式物件了,只能使用pageContext,因此在自定義標籤中必須利用pageContext來獲取其他隱式物件。   另外參考: jsp的三種自定義標籤 寫法示例    學會怎樣使用Jsp 內建標籤、jstl標籤庫及自定義標籤 這兩篇還沒好好看