25.OGNL与ValueStack(VS)-集合对象进阶

Struts2中List对象数据展示
本文介绍如何在Struts2框架中通过List对象传递数据到jsp页面,并实现对学生对象的基本属性进行展示的方法,包括如何筛选特定条件下的学生信息。

转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

首先在LoginAction中增加如下字段并提供相应的get/set方法:
private List studentList = new ArrayList();
然后再在execute中为其初始化赋值,代码如下:
studentList.add(new Student("jack", 20, 86.0f));

studentList.add(new Student("lily", 22, 96.5f));

studentList.add(new Student("tom", 23, 56.5f));

最后在loginSuc.jsp中增加如下代码:
获取List中的Student对象:<s:property value="studentList"/><br>

利用投影获取List中的name属性:<s:property value="studentList.{name}"/><br>

利用投影获取List中的age属性:<s:property value="studentList.{age}"/><br>

利用投影获取List中的第一个对象的name属性:<s:property value="studentList.[0]{name}"/>   或者<s:property value="studentList.{name}[0]"/><br>

利用选择获取List中grade>60的student信息:

<s:property value="studentList.{?#this.grade>60}"/><br>

利用选择获取List中grade>60的student名字信息:

<s:property value="studentList.{?#this.grade>60}.{name}"/><br>

利用选择获取List中grade>60的第一个student名字信息:

<s:property value="studentList.{?#this.grade>60}.{name}[0]"/><br>

利用选择获取List中grade>60的第一个student名字信息(链表):

<s:property value="studentList.{^#this.grade>60}.{name}"/><br>

利用选择获取List中grade>60的最后一个student名字信息(链表):

<s:property value="studentList.{$#this.grade>60}.{name}"/><br>

说明:这里重点是说明?#的使用,结合此例来看,studentList中有许多Stutdent对象,我们可以用条件来限制取哪些对象,这些条件必须以?#开始,并且条件要用{}括起。而this是指在判断studentList中的对象是否符合条件的当前对象。?#是指取出符合条件的所有Student对象,而^#是指取出符合条件的第一个对象,$#是指取出符合条件的最后一个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值