JSTL For Each每个迭代有多个项目



我正在尝试使用JSTL c:forEach编写一个表,但似乎无法理解。我有一组项目(一维列表),需要制作一个这样的表:

<table>
 <th>         <th>        <th>        <th>       <th>
 listItem[0] listItem[1] listItem[2] listItem[3] listItem[4] 
 listItem[5] listItem[6] listItem[7] listItem[8] listItem[9]

等等。listItem的长度未知,并且会有所不同。如有任何帮助,我们将不胜感激。

您可以每五个值迭代一次表,并在每次迭代时打印五个值。

例如:

<c:forEach items="${table}" var="item" step="5" varStatus="i">
     ${table[i.index]} 
     ${table[i.index+1]} 
     ${table[i.index+2]} 
     ${table[i.index+3]} 
     ${table[i.index+4]}<br />
</c:forEach>

这里有一个完整的例子。

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<c:set var="myList" value="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23"/>
<html>
    <body>
        <table>
            <c:forEach items="${myList}" var="current" varStatus="status">
                <c:if test="${status.count % 5 == 1}"><tr></c:if>
                    <td>${current}</td>
                <c:if test="${status.count % 5 == 0}"></tr></c:if>
            </c:forEach>
        </table>
    </body>
</html>

最新更新