Struts2 OGNL與標籤使用
阿新 • • 發佈:2019-01-30
< s:property value ="personList.{name}" />
過濾的語法:collection.{?expression} 或 collection.{^expression} 或 collection.{$expression}
< 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}" />
也許你開始困惑,上面示例不是都在使用 OGNL 表示式嗎?!沒見 %{ } 出現過啊!好眼力!凡是屬於 OGNL 表示式的串,你都可以使用 %{ } 來將它們包裹住,但這不是必須的。例如 <s:property value="expression" /> 中的 expression 在任何時候都是被當做 OGNL 表示式來處理的。
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 ="personList.{?#this.sex.equals('female')}.{name}" />< s:property value ="personList.{^#this.sex.equals('female')}.{name}" />
< s:property value
OGNL %{ } 語法
對於 ${ } 也許你並不會陌生,${ } 是 EL 表示式的語法,這裡的 %{ } 是 OGNL 表示式的語法。也許你開始困惑,上面示例不是都在使用 OGNL 表示式嗎?!沒見 %{ } 出現過啊!好眼力!凡是屬於 OGNL 表示式的串,你都可以使用 %{ } 來將它們包裹住,但這不是必須的。例如 <s:property value="expression" /> 中的 expression 在任何時候都是被當做 OGNL 表示式來處理的。