标签:
【摘要】本文主要介绍及演示了Struts迭代器(iterator)遍历List常用的4种例子,基于MyEclipse开发环境,重点关注前后端代码的实现,给出后端java代码、前段struts标签代码,主要有如下4个例子:
1. 遍历List<String>
2. 遍历List<List<String>>
3. 遍历UserEntity
4. 遍历List<UserEntity>
图1:遍历Listd的4个例子运行结果
关键词:Struts标签,iterator迭代器,List<String>,List<List<String>>
1、遍历List<String>
(1)后台TestAction.java 部分代码:
1 // TODO 给list赋值
2 if (list==null) {
3 list=new ArrayList<String>();
4 list.add("刘备");
5 list.add("关羽");
6 list.add("张飞");
7 list.add("赵云");
8 }
(2)前台jsp+s标签部分源代码:
1 <%--List<String>遍历--%>
2 <table width="242" height="256" border="1" cellpadding="1"
3 cellspacing="1">
4 <caption>
5 List<String>遍历
6 </caption>
7 <tr>
8 <%--
9 说明:<s:iterator id="别名" value="后台List变量名">
10 <s:if test="#别名!=null">
11 --%>
12 <s:iterator id="li" value="list">
13 <td>
14 <s:if test="#li!=null">
15 <s:property />
16 </s:if>
17 </td>
18 </s:iterator>
19 </tr>
20 </table>
2、遍历List<List<String>>
(1)后台TestAction.java 部分代码:
1 // TODO 给listList赋值(二维列表List)
2 if (listList==null) {
3 listList=new ArrayList<List<String>>();
4 List<String> li=new ArrayList<String>();
5 li.add("姓名");
6 li.add("势力");
7 li.add("职务");
8 listList.add(li);
9 /*List为引用类型(以地址方式保存一维List对象),
10 添加不同List到二维列表需再实例化 */
11 li=new ArrayList<String>();
12 li.add("刘备");
13 li.add("蜀");
14 li.add("老大");
15 listList.add(li);
16 li=new ArrayList<String>();
17 li.add("关羽");
18 li.add("蜀");
19 li.add("老2");
20 listList.add(li);
21 li=new ArrayList<String>();
22 li.add("张飞");
23 li.add("蜀");
24 li.add("老3");
25 listList.add(li);
26 li=new ArrayList<String>();
27 li.add("赵云");
28 li.add("蜀");
29 li.add("大将");
30 listList.add(li);
(2)前台jsp+s标签部分源代码:
1 <%--List<List<String>>遍历--%>
2 <table width="242" height="256" border="1" cellpadding="1"
3 cellspacing="1">
4 <caption>
5 List<List<String>>遍历如下:
6 </caption>
7 <s:iterator value="#request.listList" status="st">
8 <tr>
9 <s:iterator value="#request.listList.get(#st.index)">
10 <td valign="middle" align="center">
11 <s:property />
12 </td>
13 </s:iterator>
14 </tr>
15 </s:iterator>
16 </table>
3、遍历UserEntity
(1)后台TestAction.java 部分代码:
1 // TODO 给UserEntity赋值
2 if (userEntity==null) {
3 userEntity=new UserEntity("诸葛亮","男",37);
4 }
(2)前台jsp+s标签部分源代码:
1 <%--UserEntity遍历如下:--%>
2 <table width="242" height="256" border="1" cellpadding="1"
3 cellspacing="1">
4 <caption>
5 UserEntity遍历如下:
6 </caption>
7 <tr>
8 <%--<td><s:property value="#变量名.属性名" /></td>--%>
9 <td>
10 <s:property value="userEntity.name" />
11 </td>
12 <td>
13 <s:property value="userEntity.sex" />
14 </td>
15 <td>
16 <s:property value="userEntity.age" />
17 </td>
18 </tr>
19 </table>
4、遍历List<UserEntity>
(1)后台TestAction.java 部分代码:
1 // TODO 给List<UserEntity>赋值
2 if (users==null) {
3 users=new ArrayList<UserEntity> ();
4 UserEntity user=new UserEntity("张飞","男",18);
5 users.add(user);
6 user=new UserEntity("李斯","男",19);
7 users.add(user);
8 user=new UserEntity("王武","男",20);
9 users.add(user);
10 user=new UserEntity("小乔","女",21);
11 users.add(user);
12 }
(2)前台jsp+s标签部分源代码:
1 <%-- List<UserEntity>遍历如下:--%>
2 <table width="242" height="256" border="1" cellpadding="1"
3 cellspacing="1">
4 <caption>
5 List<UserEntity>遍历如下:
6 </caption>
7 <tr>
8 <th>
9 姓名
10 </th>
11 <th>
12 性别
13 </th>
14 <th>
15 年龄
16 </th>
17 </tr>
18 <s:iterator id="u" value="users">
19 <%--
20 <s:iterator id="別名" value="要遍历的集合">
21 users:对应后台Action类的List<UserEntity> users;
22 --%>
23 <tr>
24 <%--<td><s:property value="#別名.实体类属性名" /></td>--%>
25 <td>
26 <s:property value="#u.name" />
27 </td>
28 <td>
29 <s:property value="#u.sex" />
30 </