日期:2014-05-19  浏览次数:20883 次

关于<c:foreach>遍历list集合
<c:foreach> 如何遍历2个LIST集合?

假如有3个LIST集合

cmList、unList 、list

Java code

<c:forEach items="${requestScope.LIST}" var="list">
    
        <c:out value="${list.day}"></c:out>
         </td>
         <td><c:out value="${list.cnt1}"></c:out></td>
        <td><c:out value="${list.cnt2}"></c:out></td>
        <td><c:out value="${list.cnt3}"></c:out></td>
        <td><c:out value="${此处要填unList}"></c:out></td>
        <td><c:out value="${在这要填cmList}"></c:out></td>
        <td><c:out value="${list.java}"></c:out></td>
        <td><c:out value="${list.c}"></c:out></td>
        </tr>
        
    </c:forEach>




Java code


类似于
for(int i =0;i<5;i++){
   list.get(i);
   cmlist.get(i);
   unlist.get(i);
}



这个样子,如何做啊

------解决方案--------------------
实话讲 单纯用一个c:forEach 没法搞 不过如果你愿意用js的话 倒是可以实现该效果,
但是太麻烦 其实不如写小脚本吧
------解决方案--------------------
http://baike.baidu.com/view/1002440.htm,应该可以把帮到你
------解决方案--------------------
你可以尝试 嵌套循环 我没有试过 
是在不行的话 你可以在业务类中编写循环遍历的方法 再在action中循环遍历一次 

将取出的值 放到session中保存 最后再在页面上取值 这样的写法我做过
需要的话 我可以帮你试试
------解决方案--------------------
你的意思是同时遍历三个LIST?
你倒不如把那三个LIST里的对像放到一个对象里 然后用这一个LIST保存那些封装了三个对象的对象
------解决方案--------------------
如果你的项目中没有特别约束的话,使用一个中间对象把值拿过来,<c:foreach>嵌套很难实现,我们也遇到过这个问题,没什么好方法,绕过了
------解决方案--------------------
如果:cmList、unList 、list的size是一样大,可以这样:
 <c:forEach items="${requestScope.LIST}" var="list" varStatus="status">
<td><c:out value="${list.cnt1}"></c:out></td>
<td><c:out value="${list.cnt2}"></c:out></td>
<td><c:out value="${list.cnt3}"></c:out></td>
<td><c:out value="${unList[status.index]}"></c:out></td>
<td><c:out value="${cmList[status.index]}"></c:out></td>
<td><c:out value="${list.java}"></c:out></td>
<td><c:out value="${list.c}"></c:out></td>
</tr>
</c:forEach>
如果:cmList或者unList存储的是对象,可以使用${unList[status.index].属性名称}