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