当前位置: 代码迷 >> J2EE >> 关于<c:foreach>遍历list集合,该怎么解决
  详细解决方案

关于<c:foreach>遍历list集合,该怎么解决

热度:90   发布时间:2016-04-22 01:28:41.0
关于<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].属性名称}
  相关解决方案