jstl 中的<c:forEach  >循环,怎么控制循环次数,
如何用struts1 将list集合中的数据在页面循环出两列
例如jstl这种方式
<c:forEach items="${bookList}" varStatus="status" step="2">
  <tr>
  <td>${bookList[status.index].id}</td>
  <td>${bookList[status.index+1].id}</td>
  </tr>
</c:forEach> 各位高手帮个忙,做程序遇到这个问题。
补充一下,现在我用上面的方法做出来循环出两列了,可是加上超链接后,当list中的数据为奇数的时候最后一行应该只有一行,可是空白的地方还是有链接,应该怎么解决

解决方案 »

  1.   

    <td>${bookList[status.index-1].id}</td>
    <td>${bookList[status.index].id}</td>
    从status.index==1开始循环就可以了
    判断一下,如果status.index==0,什么都不做
    <c:if status.index!=0>
    <tr>
       <td>${bookList[status.index-1].id}</td>
       <td>${bookList[status.index].id}</td>
       </tr>
    </c:if>
    <c:forEach 标签会为我们控制结束的索引!
     
      

  2.   

    循环时使用c:if增加判断,如非迭代到最后,则输出
    <td>${bookList[status.index+1].id}</td>
    <c:forEach items="${bookList}" varStatus="status" step="2">
      <tr>
      <td>${bookList[status.index].id}</td>
       <c:if test="${!index.last}">
      {
         <td>${bookList[status.index+1].id}</td>
       }
       </c:if>
        </tr>
    </c:forEach>
      

  3.   

    varStatus="status"  相当于for循环的循环变量。。楼上的已经很清楚了。