1. 程式人生 > >Struts2 OGNL與標籤使用

Struts2 OGNL與標籤使用

< s:property  value ="personList.{name}" />

OGNL 過濾

OGNL 過濾也稱為選擇,就是把滿足 OGNL 表示式的結果選擇出來構成一個新的集合。
過濾的語法:collection.{?expression} 或 collection.{^expression} 或 collection.{$expression}
符號 作用
? 選取與邏輯表示式匹配的所有結果
^ 選取與邏輯表示式匹配的第一個結果
$ 選擇與邏輯表示式匹配的最後一個結果
#this 代表當前迭代的元素
< s:property  value ="array.{?#this > 5}"
 /> 
< s:property  value ="array.{^#this > 5}" /> 
< s:property  value ="array.{$#this > 5}" />

投影和過濾

< s:property  value ="personList.{?#this.sex.equals('female')}.{name}" /> 
< s:property  value ="personList.{^#this.sex.equals('female')}.{name}" /> 
< s:property  value
 ="personList.{$#this.sex.equals('female')}.{name}" />

OGNL %{ } 語法

對於 ${ } 也許你並不會陌生,${ } 是 EL 表示式的語法,這裡的 %{ } 是 OGNL 表示式的語法。
也許你開始困惑,上面示例不是都在使用 OGNL 表示式嗎?!沒見 %{ } 出現過啊!好眼力!凡是屬於 OGNL 表示式的串,你都可以使用 %{ } 來將它們包裹住,但這不是必須的。例如 <s:property value="expression" /> 中的 expression 在任何時候都是被當做 OGNL 表示式來處理的。