除了
in
和
not in
之外,
OGNL
还允许使用某个规则获得集合对象的子集,常用的有以下
3
个相关操作符。
?
:获得所有符合逻辑的元素。
^
:获得符合逻辑的第一个元素。
$
:获得符合逻辑的最后一个元素。
例如代码:
<s:iterator value="books.{?#this.price > 35}">
<s:property value="title" /> - $<s:property value="price" /><br>
</s:iterator>
在上面代码中,直接在集合后紧跟
.{}
运算符表明用于取出该集合的子集,
{}
内的表达式用于获取符合条件的元
素,
this
指的是为了从大集合
books
筛选数据到小集合
,
需要对大集合
books
进行迭代,
this
代表当前迭代的元素。
本例的表达式用于获取集合中价格大于
35
的书集合。
public class BookAction extends ActionSupport {
private List<Book> books;
....
@Override
public String execute() {
books = new LinkedList<Book>();
books.add(new Book("A735619678", "spring", 67));
books.add(new Book("B435555322", "ejb3.0",15));
}
}