`
安之若素
  • 浏览: 145193 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

iterator 标签 详解及双重循环List

阅读更多

 

 

首先我们从最基础的说起,用iterator标签遍历一个List。

如果Action中有一个这样的不为null的属性:

private List<T> list;

那么在JSP中,就可以这样来遍历list:

<s:iteratorvalue="list">
     <s:propertyvalue="propertyNameOfObjectInList"></s:property>
</s:iterator>

其中的propertyNameOfObjectInList是指list中对象的属性名。

下面我们再来看稍微复杂一点的情况,那就是嵌套使用iterator标签。

假设我们的Action中有如下属性:

private List<T> list1;
private List<T> list2;

那么,我们可以在JSP页面上这样来遍历。

<s:iteratorvalue="list1">
   <s:propertyvalue="propertyNameOfObjectInList"></s:property>
   <s:iteratorvalue="list2"id="inner">
        <s:propertyvalue="#inner.propertyNameOfObjectInList"></s:property>
   </s:iterator>
</s:iterator>

请注意,我们必须给里层的iterator标签加上一个id属性,这样,才能通过#id.propertyNameOfObjectInList来取得我们需要的值。

下面是遍历双层List的情况。

假设Action中有如下属性:

private List<List<T>> list;

那么,我们在JSP必须这样来遍历:

<s:iteratorvalue="list">
     <s:iteratorvalue="top"id="inner">
          <s:propertyvalue="#inner.propertyNameOfObjectInList"></s:property>
     </s:iterator>
</s:iterator>

这种情况下,必须把内层的iterator标签的value属性设定为”top”!这个top就代表栈顶。然后再指定id属性,并用”#”作为前缀来取值。

我今天碰到的情况是这样,在Action中:

private List<T> list1;
private List<List<T>> list2;

所以当然就要这样遍历啦:

<s:iteratorvalue="list1">
     <s:propertyvalue="propertyNameOfObjectInList"></s:property>
     <s:iteratorvalue="list2">
          <s:iteratorvalue="top"id="inner">
               <s:propertyvalue="#inner.propertyNameOfObjectInList"></s:property>
          </s:iterator>
     </s:iterator>
</s:iterator>
 
 
 
 
 
 
--------------------------------------------iterator 标签 详解---------------------------------------------------------
struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:
s:iterator 标签有3个属性:
    value:被迭代的集合
    id   :指定集合里面的元素的id
    status 迭代元素的索引
1:jsp页面定义元素写法 数组或list

<s:iterator value="{'1','2','3','4','5'}" id='number'> 
    <s:property value='number'/>A 
</s:iterator> 
打印结果为: 1A2A3A4A5A
2:索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
int getCount()返回当前迭代了几个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第一个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数
<s:iterator value="{'a','b','c'}" id='char' status='st'> 
    <s:if test="#st.Even"> 
        现在的索引是奇数为:<s:property value='#st.index'/> 
    </s:if> 
    当前元素值:<s:property value='char'/> 
</s:iterator> 
3:遍历map
value可以直接定义为:
value="#{"1":"a","2":"b"}" 
每个元素以都好隔开。元素之间的key和value 冒号隔开
value也可以是数据栈里面的java.util.Map对象
遍历写法如下:
<s:iterator value="map" id="id" status="st"> 
     key : <s:property value='key'/> 
     value:<s:property vlaue='value'/> 
</s:iterator> 
当然key 和value 都可以使java 的 Object
3:遍历数据栈.简单的List类,
List<Attr> 
class Attr{String attrName;String getAttrName(){return "123";}}
<s:iterator value="label" id="id"> 
    <s:property value="#id.attrName" /> 
</s:iterator> 
当然value 还可以写成 value="%{label}" label可以有.操作
label的属性List 可以写成value="%{label.list}" 相当于:getLabel().getList();
4:遍历2个list;
List<AttrName> attrN {color,size,style}
List<AttrValue> attrV {red,20,gay}
这2个list的元素是一一对应的,一个attrN对应一个attrV
<s:iterator value="%{attrN }" id="id"   status="status"> 
index    is : <s:property value='status.index'/> 
attrName is : <s:property value='id'/> or <s:property value='%{id}'/> 
attrName is : <s:property value='%{attrV[#status.index]}'/> 
</s:iterator>  
 
 
 
分享到:
评论

相关推荐

    struts2中iterator 标签的使用详解

    在Struts2框架中,`&lt;s:iterator&gt;`标签是一个非常强大的工具,用于在JSP页面上循环遍历集合数据,如列表(List)、数组、Map等。它允许开发者以一种动态且灵活的方式展示来自后端的数据,从而极大地提高了开发效率和...

    jsp自定义标签iterator遍历list[整理].pdf

    JSP 自定义标签 Iterator 遍历 List 本文主要介绍了在 JSP 中使用自定义标签 Iterator 遍历 List,并对标签的实现过程进行了详细的解释。 标签的概念和作用 在 JSP 中,标签是一种特殊的组件,它可以根据需要执行...

    Struts2 iterator 标签遍历 Map,List,数组(三十六)

    在Struts2中,`iterator`标签是用于遍历集合数据的重要工具,它可以用来迭代Map、List和数组等数据结构,以便在视图层进行展示。本篇文章将深入探讨`iterator`标签在遍历这些数据类型时的具体用法。 首先,我们来看...

    Map、Set、Iterator迭代详解

    Iterator&lt;String&gt; iterator = list.iterator(); while (iterator.hasNext()) { String element = iterator.next(); System.out.println(element); } ``` ### Java集合框架概述 #### 1. 集合框架简介 Java集合...

    struts2 iterator标签遍历二维数组

    在Struts2框架中,`&lt;s:iterator&gt;`标签被广泛用于遍历集合或数组等数据结构。本文将深入探讨如何使用Struts2中的`&lt;s:iterator&gt;`标签来遍历二维数组,并通过实例代码来具体说明其用法。 ### Struts2 Iterator标签 ##...

    webwrok iterator标签status属性使用方法

    ### WebWork Iterator 标签 Status 属性使用方法详解 在Web开发中,处理列表数据时经常需要用到迭代器来遍历并展示数据。WebWork框架提供了一个强大的`&lt;ww:iterator&gt;`标签,它允许开发者轻松地遍历集合或数组,并...

    struts2 标签iterator使用

    当需要遍历一个`List`时,可以采用`&lt;s:iterator&gt;`标签。假设我们有一个包含字符串的`List`: ```java public String execute() { List&lt;String&gt; list = new ArrayList(); list.add("aaa"); list.add("bbb"); ...

    Iterator详解

    Iterator&lt;String&gt; iter = list.iterator(); ``` 3. **hasNext()方法**: `hasNext()`方法用于检查迭代器是否还有更多的元素。如果集合中还有未访问的元素,它将返回`true`;否则返回`false`。在循环中,通常与`...

    struts2常用标签详解(实用版)

    ### Struts2常用标签详解(实用版) #### 引言 在Java Web开发领域中,Struts2框架因其丰富的功能及灵活的配置而备受开发者们的青睐。为了更好地掌握Struts2框架并提升开发效率,本文将详细介绍Struts2中常用的...

    iterator 遍历循环代码

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

    Iterator迭代器的用法

    该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法

    struts2标签详解

    Struts2标签详解,尤其是`Iterator`标签,是Java Web开发中的重要概念,它在Struts2框架中扮演着数据循环展示的关键角色。Struts2是Apache软件基金会下的一个开源项目,它提供了一种用于构建MVC(模型-视图-控制器)...

    Struts2标签详解及具体实例解析

    ### Struts2标签详解及具体实例解析 #### 一、概述 Struts2是一个基于MVC模式的开源框架,它提供了丰富的标签库来简化Web应用的开发过程。这些标签不仅功能强大,而且易于使用,可以帮助开发者快速构建动态网页。...

    jsp页面iterator遍历数组、Map、List

    该文档代码讲述了如何在jsp页面iterator遍历数组、Map、List集合

    struts2标签库详解(非常不错)

    10. `s:iterator`: 循环标签,常用于遍历集合数据,如List、Map等。 11. `s:include` 和 `s:useBean`: 分别用于包含其他页面和实例化Java Bean。 Struts2标签库API文档详细列出了每个标签的属性、用法和示例,帮助...

    SSH笔记-set标签、push标签、if/elseif/else标签、iterator标签、sort标签

    本文将详细讲解SSH框架中涉及到的五个关键标签:`set`、`push`、`if/elseif/else`、`iterator`以及`sort`,并结合它们在实际应用中的用法进行深入探讨。 ### `set`标签 `set`标签在Struts2框架中用于在Value Stack...

    webwrok iterator标签status属性使用方法.doc

    在探讨WebWork框架中`iterator`标签的`status`属性使用方法之前,我们先简要了解下WebWork框架。WebWork是Struts框架的一个分支,它是一个基于Java的MVC(Model-View-Controller)框架,用于构建企业级的Web应用。...

    Iterator迭代器讲解

    ### Iterator迭代器详解 #### 一、Iterator简介与概念 在Java编程语言中,`Iterator`接口是一个重要的组件,它提供了遍历集合的基本方法。`Iterator`的主要作用是在不暴露集合内部结构的情况下,顺序访问集合中的...

    JAVA中的Iterator的用法

    ### JAVA中的Iterator的用法详解 #### 一、概述 在Java编程语言中,`Iterator`接口扮演着遍历集合的重要角色。它提供了一种方式,使得开发人员能够以一致的方式遍历各种类型的集合,无需了解集合的具体实现细节。...

Global site tag (gtag.js) - Google Analytics