OGNLでコレクションの抽出
Struts2のJSPカスタムタグ中などで利用できるOGNL式はコレクションに対して便利な操作が簡単に行える。
コレクションからの条件抽出も次のようにして実現できる。
コレクション.{? 条件 }
これで条件に一致する要素のみで構成されたコレクションとなる。
次のようなリストがあるとして
<s:set name="list1" value="{ 'item1', 'item20', 'item300', 'item4000' }"/>
次のようにすると、
<s:set name="list2" value="#list1.{? #this.length()>5 && #this.length()<8 }"/>
長さが6か7の要素のみにフィルタされるので、次のようにすると
<s:iterator value="#list2"> [<s:property value="top"/>] </s:iterator>
次の出力となる。
[item20][item300]