选择是对集合中行的操作。所谓选择,就是通过一定的条件获取集合中满足这一条件的数据,所获取的行就是对集合中数据的选择操作。在操作时需要应用“#”将集合中的数据取出进行选择操作。
如在一个集合中包含多个学生对象,获取这个集合中学生年龄大于 10 的所有学生,就是选择操作。
本示例应用“#”过滤集合,选出价格超过 50 美元的图书并显示。
创建 OgnlAction 文件,在文件中定义变量,并通过 add() 方法对变量进行赋值,关键代码如下:
public class OgnlAction extends ActionSupport{ //定义List类型books变量
private List<Book>books;
public List<Book>getBooks(){
return books;
}
public String execute(){ //初始化books对象
books = new LinkedList<Book>(); //应用add()方法为List类型books变量赋值
books.add(new Book("978-0735619678","编程宝典",50.99));
books.add(new Book("978-0596007867","典型模块大全",35.96));
books.add(new Book("978-0201633610","开发实战宝典",50.19));
books.add(new Book("978-0596527341","范例大全",25.19));
books.add(new Book("978-0735605350","技术开发大全",50.19));
return SUCCESS;
}
}
创建 JSP 文件,使用“#”对集合进行选择过滤,关键代码如下:
<body>
<h3>用于过滤集合</h3>
<p>书的价格超过50美元的是</p>
<ul>
<s:iterator value="books.{?#this.price>50}">
<li><s:property value="title"/>-$<s:property value="price"/></li>
</s:iterator>
</ul>
<p>"范例大全"的价格是:<s:property value="books.{?#this.title=='范例大全'}.{price}
[0]"/></p>
</body>}