- 論壇徽章:
- 0
|
EL 表達式的格式是這樣的:用美元符號({ })中
組合靜態(tài)文本和多個 EL 表達式以指定動態(tài)屬性值
存取器 EL 提供了兩種不同的存取器(點運算符(.)和方括號運算符([])),也支持通過 EL 操作特性和元素
點運算符通常用于訪問對象的特性:例如,在表達式 ${ user.firstName} 中,使用點運算符來訪問 user 標識符所引用對象的名為 firstName 的特性。EL 使用 Java bean 約定訪問對象特性,因此必須定義這個特性的 getter 方法(通常是名為 getFirstName() 的方法),以便表達式正確求值。當被訪問的特性本身是對象時,可以遞歸地應用點運算符。例如,具有city屬性的address對象是user對象的屬性,,表達式 ${ user.address.city} 將會返回這個地址對象嵌套的 city 特性。
方括號運算符用來檢索數組和集合的元素。在數組和有序集合(也即,實現了 java.util.List 接口的集合)的情況下,把要檢索的元素的下標放在方括號中。例如,表達式 ${ urls[3]} 返回 urls 標識符所引用的數組或集合的第四個元素(和 Java 語言以及 JavaScript 中一樣,EL 中的下標是從零開始的)。
對于實現 java.util.Map 接口的集合,方括號運算符使用關聯的鍵查找存儲在映射中的值。在方括號中指定鍵,并將相應的值作為表達式的值返回。例如,表達式 ${ commands["dir"]} 返回與 commands 標識符所引用的 Map 中的 "dir" 鍵相關聯的值。
點運算符和方括號運算符還可以互操作。例如,如果數組的元素本身是對象,則可以使用方括號運算符來檢索該數組的元素,并結合點運算符來檢索該元素的一個特性(例如 ${ urls[3].protocol})。
點運算符和方括號運算符可能實現某種程度的互換。例如,也可以使用 ${ user["firstName"]} 來檢索 user 對象的 firstName 特性,正如可以用 ${ commands.dir} 獲取與 commands 映射中的 "dir" 鍵相關聯的值一樣。
運算符
算術運算符 +、-、*、/(或 div)和 %(或 mod)
關系運算符 ==(或 eq)、!=(或 ne)、(或 lt)、>(或 gt)、=(或 ge)
邏輯運算符 &&(或 and)、||(或 or)和 !(或 not)
驗證運算符 empty
利用算術運算符的 EL 表達式
${item.price * (1 + taxRate[user.address.zipcode])}
利用關系和邏輯運算符的 EL 表達式:關系運算符允許比較數字或文本數據。比較的結果作為布爾值返回
${(x >= min) && (x
運算符 empty:驗證數據,empty 運算符采用單個表達式作為其變量(也即,${ empty input}),并返回一個布爾值,該布爾值表示對表達式求值的結果是不是“空”值。求值結果為 null 的表達式被認為是空,即無元素的集合或數組。如果參數是對長度為零的 String 求值所得的結果,則 empty 運算符也將返回 true。
EL 運算符優(yōu)先級(自頂到底,從左到右)
[], .
()
unary -、not、!、empty
*、/、div、%、mod
+、binary -
() 、>、=、lt、gt、le、ge
==、!=、eq、ne
&&、and
||、or
文字值: 在 EL 表達式中,數字、字符串、布爾值和 null 都可以被指定為文字值。字符串可以用單引號或雙引號定界。布爾值被指定為 true 和 false。
Taglib(偽指令):用于 JSTL core 庫 EL 版本的 taglib 偽指令
對應于 JSTL core 庫的 taglib 偽指令有兩種:
用于 JSTL core 庫 RT 版本的 taglib 偽指令
變量標記:
JSTL 定制標記是 操作: 操作提供基于標記的機制來創(chuàng)建和設置限制了作用域的變量,其中 var 屬性指定了限制了作用域的變量的名稱,scope 屬性表明了該變量駐留在哪個作用域中,value 屬性指定了分配給該變量的值。如果指定變量已經存在,則簡單地將所指明的值賦給它。如果不存在,則創(chuàng)建新的限制了作用域的變量,并用該值初始化這個變量。scope 屬性是可選的,其缺省值是 page, 操作的語法
操作示例
通過主體內容指定 操作的值
CST
操作是用來刪除限制了作用域的變量的,它獲取兩個屬性。var 屬性指定待刪除變量的名稱,scope 屬性是可選的,它表示待刪除變量來自哪個作用域,缺省為 page.
輸出:該標記對由其 value 屬性指定的表達式進行求值,然后打印結果。如果指定了可選屬性 default,那么,在對 value 屬性的表達式求值所得結果為 null 或空 String 的情況下, 將打印其值.
操作的語法
escapeXml 屬性也是可選的。它控制當用 標記輸出諸如“”和“&”之類的字符(在 HTML 和 XML 中具有特殊意義)時是否應該進行轉義。如果將 escapeXml 設置為 true,則會自動將這些字符轉換成相應的 XML 實體(此處提到的字符分別轉換成 和 &)。
帶缺省內容的 操作示例 Hello
禁用轉義的 操作示例
合并 和 以提供缺省變量值
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u3/109937/showart_2144182.html |
|