首页 > 编程笔记 > Java笔记

Struts2 “#”符号:获取集合中的数据并进行选择操作

选择是对集合中行的操作。所谓选择,就是通过一定的条件获取集合中满足这一条件的数据,所获取的行就是对集合中数据的选择操作。在操作时需要应用“#”将集合中的数据取出进行选择操作。

语法:

list.{?#conditional expression>value}

如在一个集合中包含多个学生对象,获取这个集合中学生年龄大于 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>}

所有教程

优秀文章