`

Struts迭代器(iterator)遍历List常用的4种例子

阅读更多

1. 遍历List<String>

2. 遍历List<List<String>>

3. 遍历UserEntity

4. 遍历List<UserEntity>

例子的详细代码请参考附件1,给出两个4个例子的运行截图(如下图1):
 
                   图1:遍历Listd的4个例子运行结果
关键词:Struts标签,iterator迭代器,List<String>,List<List<String>>

 

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&ltString&gt遍历
                         </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>

<s:iterator value="strs">
 
  <s:property/><br>   </s:iterator> 或者: <s:iterator value="strs"var="var">    <s:propertyvalue="var"/><br>   </s:iterator>

注:遍历List<String>运行结果参考上图1(左上)

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标签部分源代码:

     <%--List<List<String>>遍历--%>
                     <table width="242" height="256" border="1" cellpadding="1"
                         cellspacing="1">
                         <caption>
                             List&ltList&ltString&gt&gt遍历如下:
                         </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>

注:遍历List<List<String>>运行结果参考上图1(右上)

3、遍历UserEntity

(1)后台TestAction.java 部分代码: 


 // TODO 给UserEntity赋值
  if (userEntity==null) {
      userEntity=new UserEntity("诸葛亮","男",37);
  }

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

<%--UserEntity遍历如下:--%>
<table width="242" height="256" border="1" cellpadding="1"
cellspacing="1">
<caption>
UserEntity遍历如下:
</caption>
<tr>
<%--<td><s:property value="#变量名.属性名" /></td>--%>
<td>
<s:property value="userEntity.name" />
</td>
<td>
<s:property value="userEntity.sex" />
</td>
<td>
<s:property value="userEntity.age" />
</td>
</tr>
</table>

注:遍历UserEntity运行结果参考上图1(左下)

4、遍历List<UserEntity>

(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);
     }
View Code

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

 <%-- List<UserEntity>遍历如下:--%>
                     <table width="242" height="256" border="1" cellpadding="1"
                        cellspacing="1">
                         <caption>
                             List&ltUserEntity&gt遍历如下:
                         </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>

注:遍历List<UserEntity>运行结果参考上图1(右下)

5、用法比较

(1)比较List<String>和UserEntity

  它们遍历显示效果类似,但是细心的朋友会发现,它们主要有以下区别:
  区别1:List<String>的遍历需要iterator迭代器如<s:iterator id="别名" value="后台List变量名">,且不需要value属性直接用<s:property />获取列表元素;
  区别2:UserEntity刚相反,不需要iterator迭代器,但需要value属性<s:property value="#变量名.属性名" />来获取列表元素。

(2)比较List<List<String>>和List<UserEntity>

  它们遍历显示效果也类似,它们也有以下区别:
  区别1: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>

  区别2: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>
分享到:
评论

相关推荐

    struts2 iterator标签遍历二维数组

    这里的写法存在一些问题,因为第二层迭代器的`value`属性应该是指向第一层迭代器中的当前元素,而不是另一个名为`ist`的列表。正确的写法应该如下: ```xml &lt;s:iterator value="#request.list" status="sta"&gt; &lt;s:...

    iterator 遍历循环代码

    ### Iterator遍历循环代码知识点详解 #### 一、概述 在Java编程语言中,集合框架是处理一组数据的重要工具之一。对于集合中的元素进行遍历是常见操作,而`Iterator`接口则是Java中最常用的一种遍历集合的方式。...

    struts2遍历集合

    根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    对于集合类型,我们通常会在JSP中通过迭代器遍历并生成多个表单元素,每个元素对应集合中的一个元素。例如,对于`List`或`Set`,可以使用以下方式创建输入框: ```jsp &lt;s:iterator value="list"&gt; ...

    迭代器的使用

    Struts2作为一款流行的MVC框架,其OGNL(Object-Graph Navigation Language)表达式语言提供了一种灵活的方式来访问和操作对象,包括使用迭代器来遍历数据。 1. **Struts2中的`s:iterator`标签** Struts2的`s:...

    struts2标签使用例子

    - `s:iterator`:遍历集合数据,如List、Map等,用于循环渲染数据。 - `s:if` 和 `s:else`:条件判断标签,类似于Java中的if...else语句。 - `s:foreach`:遍历数组或集合,类似Java的for-each循环。 4. **...

    struts2 标签库 帮助文档

    4. &lt;s:iterator&gt;&lt;/s:iterator&gt;-----用于遍历集合 L: 1. &lt;s:label&gt;&lt;/s:label&gt;-----只读的标签 M: 1. &lt;s:merge&gt;&lt;/s:merge&gt;-----合并遍历集合出来的值 O: 1. &lt;s:optgroup&gt;&lt;/s:optgroup&gt;-----获取...

    Struts2常用标签

    本篇文章主要关注Struts2中的常用标签,这些标签大大简化了Web开发中的一些常见任务。 首先,我们要明白Struts2标签库与Struts1.x的不同之处。在Struts1.x中,标签库按照功能划分为HTML、Tiles、Logic和Bean等几个...

    Struts2图书馆管理系统

    7. `&lt;s:iterator&gt;`:遍历集合,如List或Map,常用于显示表格或列表数据。 8. `&lt;s:property&gt;`:显示Action类属性的值,用于在页面上展示后台数据。 9. `&lt;s:if&gt;` 和 `&lt;s:else&gt;`:条件判断标签,可以根据特定条件控制...

    ssh2的表单数据添加存储展示

    例如,如果有一个用户列表需要逐一插入数据库,可以先将所有用户数据放入List,然后在Action中通过Iterator遍历并调用Hibernate的save()方法。 项目的具体实现可能包括以下步骤: 1. 创建Struts2 Action类,定义...

    struts标签做的增删查改

    1. **s:iterator**:这是Struts2中的迭代器标签,用来遍历集合对象,如ArrayList、Map等。它常用于显示数据库查询结果或者处理数组。例如,你可以将一个用户列表传递到JSP页面,然后用`s:iterator`标签来循环遍历并...

    Struts2常用标签及说明

    `status`属性提供了迭代器的状态信息。 ##### 6. URL地址标签 - `&lt;s:url&gt;`标签 `&lt;s:url&gt;`标签用于生成动态URL地址,并可以添加请求参数,例如: ```html ``` 这里`action`属性指定了请求的目标Action,而`s:...

    struts2综合复习习题

    #### 一、Struts2标记库中迭代标签iterator的()方法是判断当前元素是否是第偶数个元素。 **答案解析:** - 正确答案为 **D.isEven**。 - Struts2中的`&lt;s:iterator&gt;`标签用于迭代集合中的元素。在迭代过程中,可以...

    struts2标签详解

    举个例子,假设我们有一个名为`users`的List集合,里面包含User对象,我们可以用`Iterator`标签来遍历并显示用户信息: ```xml &lt;s:iterator value="users" status="userStatus"&gt; &lt;td&gt;&lt;s:property value=...

Global site tag (gtag.js) - Google Analytics