EL?表達式的格式是這樣的:用美元符號($)定界,內(nèi)容包括在花括號({})中。
??????清單?1.?說明?EL?表達式定界符的?JSTL?操作??
??????????????<c:out?value="${user.firstName}"/>;
此外,您可以將多個表達式與靜態(tài)文本組合在一起以通過字符串并置來構(gòu)造動態(tài)屬性值,如清單?4?所示。單獨的表達式由標識符、存取器、文字和運算符組成。標識符用來引用存儲在數(shù)據(jù)中心中的數(shù)據(jù)對象。EL?有?11?個保留標識符,對應(yīng)于?11?個?EL?隱式對象。假定所有其它標識符都引用限制了作用域的變量。存取器用來檢索對象的特性或集合的元素。文字表示固定的值?—?數(shù)字、字符、字符串、布爾型或空值。運算符允許對數(shù)據(jù)和文字進行組合以及比較。
??????清單?2.?組合靜態(tài)文本和多個?EL?表達式以指定動態(tài)屬性值??
????????????<c:out?value="Hello?${user.firstName}?${user.lastName}"/>;
隱式對象
表?1?中列出了?11?個?EL?隱式對象的標識符。不要將這些對象與?JSP?隱式對象(一共只有九個)混淆,其中只有一個對象是它們所共有的。
表?1.?EL?隱式對象
類別????????標識符????????????描述?
JSP?????????pageContext???????PageContext?實例對應(yī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?隱式對象的特性。實際上,這是將它包括在?EL?隱式對象中的主要理由。
其余所有?EL?隱式對象都是映射,可以用來查找對應(yīng)于名稱的對象。前四個映射表示先前討論的各種屬性作用域。可以用它們來查找特定作用域中的標識符,而不用依賴于?EL?在缺省情況下使用的順序查找過程。
接下來的四個映射用來獲取請求參數(shù)和請求頭的值。因為?HTTP?協(xié)議允許請求參數(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?表達式所訪問數(shù)據(jù)的運算符。表?2?中匯總了這些運算符。
表?2.?EL?運算符
類別??????????運算符?
算術(shù)運算符????+、-、*、/(或?div)和?%(或?mod)?
關(guān)系運算符?????==(或?eq)、!=(或?ne)、<</code>;(或?lt)、>;(或?gt)、<=(或?le)和?
>;=(或?ge)?
邏輯運算符????&&(或?and)、||(或?or)和?!(或?not)?
驗證運算符????empty??
??????清單?3.?利用算術(shù)運算符的?EL?表達式?
?????????????${item.price?*?(1?+?taxRate[user.address.zipcode])}?
??????清單?4.?利用關(guān)系和邏輯運算符的?EL?表達式?
?????????????${(x?>;=?min)?&&?(x?<=?max)}
表?3.?EL?運算符優(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"?%>;
? | 這個問題一般是由于你使用的jstl版本造成的。 你的頁面應(yīng)該會包含如下代碼: <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> 這是最新版的jstl 1.1路徑,而如果你使用的是舊版1.0的則需要把路徑中的jsp去掉,如下: <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> <%@ taglib uri="http://java.sun.com/jstl/sql" prefix="sql" %>
|
|
本Blog純屬個人學(xué)習(xí)、工作需要,記錄相關(guān)資料。請不要發(fā)表任何有人身攻擊的言論,謝謝! www.zhipsoft.cn
posted on 2006-05-03 00:22
ZhipSoft 閱讀(3447)
評論(1) 編輯 收藏 所屬分類:
收藏轉(zhuǎn)載