选择是对集合中行的操作。所谓选择,就是通过一定的条件获取集合中满足这一条件的数据,所获取的行就是对集合中数据的选择操作。在操作时需要应用“#”将集合中的数据取出进行选择操作。
如在一个集合中包含多个学生对象,获取这个集合中学生年龄大于 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>}