有这样的需求,两个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标签,如下所示:
下面是使用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>
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>