OGNL的集合操作
如果需要一個(gè)集合元素的時(shí)候(例如List對(duì)象或者Map對(duì)象),可以使用OGNL中同集合相關(guān)的表達(dá)式。
可以使用如下代碼直接生成一個(gè)List對(duì)象:
該OGNL表達(dá)式中,直接生成了一個(gè)List對(duì)象,該List對(duì)象中包含3個(gè)元素:e1、e2和e3。如果需要更多的元素,可以按照這樣的格式定義多個(gè)元素,多個(gè)元素之間使用逗號(hào)隔開。
如下代碼可以直接生成一個(gè)Map對(duì)象:
#{key1:value1,key2:value2,…} |
Map類型的集合對(duì)象,使用key-value格式定義,每個(gè)key-value元素使用冒號(hào)標(biāo)識(shí),多個(gè)元素之間使用逗號(hào)隔開。
對(duì)于集合類型,OGNL表達(dá)式可以使用in和not in兩個(gè)元素符號(hào)。其中,in表達(dá)式用來判斷某個(gè)元素是否在指定的集合對(duì)象中;not in判斷某個(gè)元素是否不在指定的集合對(duì)象中,如代碼8.3所示。
代碼8.3使用OGNL集合操作符
除了in和not in之外,OGNL還允許使用某個(gè)規(guī)則獲得集合對(duì)象的子集,常用的有以下3個(gè)相關(guān)操作符。
>>>
?:獲得所有符合邏輯的元素。
>>>
^:獲得符合邏輯的第一個(gè)元素。
>>>
$:獲得符合邏輯的最后一個(gè)元素。
例如代碼:
person.relatives.{? #this.gender == 'male'} |
該代碼可以獲得person的所有性別為male的relatievs集合。
posted on 2009-08-15 17:25
jadmin 閱讀(161)
評(píng)論(0) 編輯 收藏