`

使用s:iterator或c:foreach页面循环输出两个list

阅读更多
有这样的需求,两个list:
1.list包含属性X,值为1、2、3、4、5、6
2.list2包含属性Y,值为a、b、C、D、E、F
3.两个list的size相同
4.输出成(原来的大小),值为合并后的,即:1a、2b、3C、4D、5E、6F
方法是:通过struts的iterator和set、property标签,如下所示:
<s:iterator value="list1" status="status" step="1">		
/*以下是取得list2的第几个属性对象,并设置到request的范围共享*/
<s:set name="list2" value="#attr.l2[#attr.status.getIndex()]" scope="request"/>
<s:property value="#request.list1.x"/>
<s:property value="#request.list2.y"/>
</s:iterator>

下面是使用foreach实现的两个输出:
<c:forEach  items="${list1}" var="item" varStatus="status">
	<c:out value="${item.X}"></c:out>
	<c:out value="${list2[status.index].Y}"></c:out>
</c:forEach> 


另附:
jstl中的varStatus

和 var 属性一样, varStatus 用于创建限定了作用域的变量。不过,由 varStatus 属性命名的变量并不存储当前索引值或当前元素,而是赋予 javax.servlet.jsp.jstl.core.LoopTagStatus 类的实例。该类定义了一组特性,它们描述了迭代的当前状态,下面列出了这些特性:

特性         Getter                       描述
current    getCurrent()           当前这次迭代的(集合中的)项
index       getIndex()               当前这次迭代从 0 开始的迭代索引
count       getCount()             当前这次迭代从 1 开始的迭代计数
first          isFirst()                  用来表明当前这轮迭代是否为第一次迭代的标志
last          isLast()                  用来表明当前这轮迭代是否为最后一次迭代的标志
begin      getBegin()             begin 属性值
end         getEnd()                 end 属性值
step        getStep()                step 属性值



<c:foreach var="showBspSubTop" varstatus="i" begin="1" step="1" items="${ showBspSubTops }"></c:foreach>



分享到:
评论

相关推荐

    std::List类的遍历获得元素的操作二法

    在给定的文件列表中,`List.cpp`可能包含了上述两种遍历`std::list`的实现,而其他文件如`.h`、`.rc`等可能是项目的头文件、资源文件或工程配置文件。分析这些文件可以帮助我们理解`std::list`的实际使用场景和代码...

    struts2标签的使用

    10. **循环标签:s:foreach** 类似于Java的for-each循环,用于遍历数组或集合。`&lt;s:foreach items="colors" var="color"&gt;${color}&lt;/s:foreach&gt;`,items属性指定遍历的对象,var属性定义循环变量。 通过理解并熟练...

    Struts标签的简单应用

    - `&lt;s:iterator&gt;`:遍历集合对象,如List或Map,进行循环输出。 2. Commons Tags(c标签): c标签来自Apache Commons JSTL库,它提供了一组通用的JSP标签,可以处理数组、集合、字符串等数据操作。例如: - `&lt;c...

    struts2标签解释(自制版)

    例如,通过`s:form`和`s:submit`创建的表单可以自动处理数据提交,`s:if`和`s:foreach`可以方便地实现条件判断和循环输出。 总结,Struts2标签是Struts2框架中的重要组成部分,它通过提供丰富的标签库,简化了视图...

    java中List对象集合的遍历方法(三个)

    ### 第二种:增强型for循环(foreach) ```java for (A a : list) { // ... } ``` 增强型for循环是Java 5引入的新特性,它简化了遍历集合的操作。这种方式实际上是内部使用了迭代器,所以它同样存在性能问题,...

    jstl标签 forEach详解

    jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将集合中的成员循序浏览一遍。该标签的运作方式为当条件符合时,就会持续重复执行的本体内容。 语法 --------...

    Java 实例 - List 循环移动元素源代码+详细指导教程.zip

    在Java中,遍历List并移动元素通常有两种主要方式:迭代器(Iterator)和增强for循环(foreach)。以下是这两种方法的详细说明: 1. 迭代器(Iterator): 迭代器是Java集合框架提供的一种统一的遍历方式,它可以...

    java 中如何从LIST 对象取值

    除了使用`get()`方法之外,我们还可以使用迭代器(`Iterator`)或增强型`for`循环(也称为“foreach”循环)来遍历`List`中的元素。这两种方法都避免了直接使用索引,这可以减少潜在的数组越界错误。 ##### 使用`...

    Iterator的使用

    这个接口提供了两个主要的方法: 1. `boolean hasNext()`: 检查迭代器是否还有更多的元素。如果集合中还有未访问的元素,此方法将返回`true`;否则,返回`false`。 2. `E next()`: 返回迭代器的下一个元素。如果...

    JavaList.rar_javalist

    首先,我们需要导入`java.util.List`和`java.util.ArrayList`(或`java.util.LinkedList`)这两个包。`ArrayList`和`LinkedList`都是`List`接口的实现类,它们各自有不同的特性和性能特点。`ArrayList`是基于动态...

    Iterator迭代器的简单介绍与使用

    在Java中,迭代器通过`Iterator`接口来实现,该接口提供了两个主要方法: 1. `public E next()`: 返回迭代中的下一个元素。每次调用`next()`方法,迭代器会移动到下一个元素,并返回当前元素的引用。 2. `public ...

    list map相关用法实例-流氓版

    5. **Stream API**:Java 8引入的`Stream API`提供了一种新的遍历方式,支持链式操作,可以进行过滤、映射、聚合等操作,如`list.stream().forEach(System.out::println)`或`map.entrySet().stream().forEach(System...

    C#面向对象设计模式纵横谈(18):(行为型模式) Iterator 迭代器模式 (Level 300)

    首先,迭代器模式包含两个主要角色:聚合对象(Aggregate)和迭代器(Iterator)。聚合对象持有元素的集合,并提供创建迭代器的方法。迭代器则负责遍历聚合对象中的元素,它有一个或多个方法用于移动到下一个元素,...

    List,Set和Map遍历读取[归类].pdf

    遍历Set通常也使用迭代器或增强型for循环: - **方法一:迭代器** ```java Set&lt;String&gt; set = new HashSet(); set.add("element1"); set.add("element2"); Iterator&lt;String&gt; iterator = set.iterator(); ...

    Java 实例 - 集合遍历源代码-详细教程.zip

    遍历LinkedList可以使用Iterator,或者同样适用for-each循环,但由于其内部结构,使用Iterator在某些情况下可能更有效率: ```java LinkedList&lt;String&gt; linkedList = new LinkedList(); linkedList.addFirst("A"); ...

    java集合类及面试题

    但是却让其被继承产生了两个接口,就是 Set 和 List。Set 中不能包含重复的元素。List 是一个有序的集合,可以包含重复的元素,提供了按索引访问的方式。Map 是 Java.util 包中的另一个接口,它和 Collection 接口...

    Java Iterator迭代器_动力节点Java学院整理

    首先,我们可以使用List接口实现了Iterable接口,获取一个Iterator对象,然后使用while循环来遍历List中的所有元素。同样,我们可以使用Map的entrySet()方法来获取一个Set对象,然后使用Iterator来遍历这个Set对象。...

    ArrayList上机练习1

    2. 对于`Student`类,我们需要处理两个`ArrayList&lt;Student&gt;`——`list1`和`list2`。我们将执行以下操作: - 合并`list1`和`list2`,同时移除重复的`Student`对象。这可以通过调用`addAll`并将结果存储在一个新的`...

Global site tag (gtag.js) - Google Analytics