??????清單?1.?說明?EL?表達(dá)式定界符的?JSTL?操作??
??????????????<c:out?value="${user.firstName}"/>;
此外,您可以將多個表達(dá)式與靜態(tài)文本組合在一起以通過字符串并置來構(gòu)造動態(tài)屬性值,如清單?4?所示。單獨(dú)的表達(dá)式由標(biāo)識符、存取器、文字和運(yùn)算符組成。標(biāo)識符用來引用存儲在數(shù)據(jù)中心中的數(shù)據(jù)對象。EL?有?11?個保留標(biāo)識符,對應(yīng)于?11?個?EL?隱式對象。假定所有其它標(biāo)識符都引用限制了作用域的變量。存取器用來檢索對象的特性或集合的元素。文字表示固定的值?—?數(shù)字、字符、字符串、布爾型或空值。運(yùn)算符允許對數(shù)據(jù)和文字進(jìn)行組合以及比較。
??????清單?2.?組合靜態(tài)文本和多個?EL?表達(dá)式以指定動態(tài)屬性值??
????????????<c:out?value="Hello?${user.firstName}?${user.lastName}"/>;
隱式對象
表?1?中列出了?11?個?EL?隱式對象的標(biāo)識符。不要將這些對象與?JSP?隱式對象(一共只有九個)混淆,其中只有一個對象是它們所共有的。
表?1.?EL?隱式對象
類別????????標(biāo)識符????????????描述?
JSP?????????pageContext???????PageContext?實(shí)例對應(yīng)于當(dāng)前頁面的處理?
作用域??????pageScope?????????與頁面作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的?Map?類?
????????????requestScope??????與請求作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的?Map?類?
????????????sessionScope??????與會話作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的?Map?類?
????????????applicationScope??與應(yīng)用程序作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的?Map?類?
請求參數(shù)????param?????????????按名稱存儲請求參數(shù)的主要值的?Map?類?
????????????paramValues???????將請求參數(shù)的所有值作為?String?數(shù)組存儲的?Map?類?
請求頭??????header????????????按名稱存儲請求頭主要值的?Map?類?
????????????headerValues??????將請求頭的所有值作為?String?數(shù)組存儲的?Map?類?
Cookie??????cookie????????????按名稱存儲請求附帶的?cookie?的?Map?類?
初始化參數(shù)??initParam?????????按名稱存儲?Web?應(yīng)用程序上下文初始化參數(shù)的?Map?類?
盡管?JSP?和?EL?隱式對象中只有一個公共對象(pageContext),但通過?EL?也可以訪問其它?JSP?隱式對象。原因是?pageContext?擁有訪問所有其它八個?JSP?隱式對象的特性。實(shí)際上,這是將它包括在?EL?隱式對象中的主要理由。
其余所有?EL?隱式對象都是映射,可以用來查找對應(yīng)于名稱的對象。前四個映射表示先前討論的各種屬性作用域。可以用它們來查找特定作用域中的標(biāo)識符,而不用依賴于?EL?在缺省情況下使用的順序查找過程。
接下來的四個映射用來獲取請求參數(shù)和請求頭的值。因?yàn)?HTTP?協(xié)議允許請求參數(shù)和請求頭具有多個值,所以它們各有一對映射。每對中的第一個映射返回請求參數(shù)或頭的主要值,通常是恰巧在實(shí)際請求中首先指定的那個值。每對中第二個映射允許檢索參數(shù)或頭的所有值。這些映射中的鍵是參數(shù)或頭的名稱,但這些值是?String?對象的數(shù)組,其中的每個元素都是單一參數(shù)值或頭值。
cookie?隱式對象提供了對由請求設(shè)置的?cookie?名稱的訪問。這個對象將所有與請求相關(guān)聯(lián)的?cookie?名稱映射到表示那些?cookie?特性的?Cookie?對象。
最后一個?EL?隱式對象?initParam?是一個映射,它儲存與?Web?應(yīng)用程序相關(guān)聯(lián)的所有上下文的初始化參數(shù)的名稱和值。初始化參數(shù)是通過?web.xml?部署描述符文件指定的,該文件位于應(yīng)用程序的?WEB-INF?目錄中。
最終,EL?還包括了幾個用來操作和比較?EL?表達(dá)式所訪問數(shù)據(jù)的運(yùn)算符。表?2?中匯總了這些運(yùn)算符。
表?2.?EL?運(yùn)算符
類別??????????運(yùn)算符?
算術(shù)運(yùn)算符????+、-、*、/(或?div)和?%(或?mod)?
關(guān)系運(yùn)算符?????==(或?eq)、!=(或?ne)、<</code>;(或?lt)、>;(或?gt)、<=(或?le)和?
>;=(或?ge)?
邏輯運(yùn)算符????&&(或?and)、||(或?or)和?!(或?not)?
驗(yàn)證運(yùn)算符????empty??
??????清單?3.?利用算術(shù)運(yùn)算符的?EL?表達(dá)式?
?????????????${item.price?*?(1?+?taxRate[user.address.zipcode])}?
??????清單?4.?利用關(guān)系和邏輯運(yùn)算符的?EL?表達(dá)式?
?????????????${(x?>;=?min)?&&?(x?<=?max)}
表?3.?EL?運(yùn)算符優(yōu)先級(自頂?shù)降祝瑥淖蟮接遥?
[],?.?
()?
unary?-、not、!、empty?
*、/、div、%、mod?
+、binary?-?
()?<</code>;、>;、<=、>;=、lt、gt、le、ge?
==、!=、eq、ne?
&&、and?
||、or
?????????清單?5.?用于?JSTL?core?庫?EL?版本的?taglib?偽指令??
?????????????????????<%@?taglib?uri="http://java.sun.com/jstl/core"?prefix="c"?%>;
? |
|
? |
本Blog純屬個人學(xué)習(xí)、工作需要,記錄相關(guān)資料。請不要發(fā)表任何有人身攻擊的言論,謝謝! www.zhipsoft.cn