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