首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-08-26 
使用s:iterator或c:foreach页面循环输出两个list有这样的需求,两个list:1.list包含属性X,值为1、2、3、4、5、62

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



热点排行