首页 > 学院 > 开发设计 > 正文

sturuts标签遍历list的4种常见方法

2019-11-15 00:35:06
字体:
来源:转载
供稿:网友
sturuts标签遍历list的4种常见方法

【摘要】本文主要介绍及演示了Struts迭代器(iterator)遍历List常用的4种例子,基于MyEclipse开发环境,重点关注前后端代码的实现,给出后端java代码、前段struts标签代码,主要有如下4个例子:

1. 遍历List<String>

2. 遍历List<List<String>>

3. 遍历UserEntity

4. 遍历List<UserEntity>

图1:遍历Listd的4个例子运行结果

图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         }
TODO 给list赋值

(2)前台jsp+s标签部分源代码:

 1                     <%--List<String>遍历--%> 2                     <table width="242" height="256" border="1" cellpadding="1" 3                         cellspacing="1"> 4                         <caption> 5                             List&ltString&gt遍历 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>
List遍历

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);
TODO 给listList赋值(二维列表List)

(2)前台jsp+s标签部分源代码:

 1     <%--List<List<String>>遍历--%> 2                     <table width="242" height="256" border="1" cellpadding="1" 3                         cellspacing="1"> 4                         <caption> 5                             List&ltList&ltString&gt&gt遍历如下: 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             }
TODO 给UserEntity赋值

(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>
View Code

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     }
View Code

(2)前台jsp+s标签部分源代码:

 1 <%-- List<UserEntity>遍历如下:--%> 2                     <table width="242" height="256" border="1" cellpadding="1" 3                         cellspacing="1"> 4                         <caption> 5                             List&ltUserEntity&gt遍历如下: 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                                 </td>31                                 <td>32                                     <s:property value="#u.age" />33                                 </td>34                             </tr>35                         </s:iterator>36                     </table>
View Code

5、用法比较

它们遍历显示效果也类似,它们也有以下区别:

List<List<String>>由于列表没有属性需要借助迭代器的属性status="st",如:

<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>

List<UserEntity>则简单多,借用迭代器iterator的id、value属性,再用<s:property value="#別名.实体类属性名" />获取

如:

<s:iterator id="u" value="users">   <tr>       <td>         <s:property value="#u.name" />       </td>       <td>         <s:property value="#u.sex" />       </td>       <td>         <s:property value="#u.age" />       </td>   </tr></s:iterator>

遍历方法各有长短,若不是多表联接查询 、显示表格的列数已经固定, 一般用实体类(UserEntity)迭代的方式。相反,显示的 数据表格行和列不确定,此时用实体类(UserEntity)迭代的方式很难实现, 只能用List<String>或List<List<String>>实现了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表