jstl列出手动迭代?

时间:2010-11-29 17:37:33

标签: java jsp jstl

我有以下问题(jstl新手),需要在电子商店中创建4列产品,但是不知道如何手动迭代数组,获得此代码重复每行的产品:< / p>

<c:forEach items="${productCollection}" var="product">

        <tr>
            <c:forEach var="i" begin="1" end="4">

                <td>
                    <a href="productDetail.htm"><img width="90" alt="${product.productName}" src="${product.productImage}"/></a>

                    <a href="productDetail.htm"><c:out value="${product.productName}" /></a>

                </td>

            </c:forEach>

        </tr>

    </c:forEach>

我需要在第二个循环上手动移动productColeection arrayList。我希望我能用Java Iterator做一些事情:

<c:forEach items="${productCollection}" var="product">

        <tr>
            <c:forEach var="i" begin="1" end="4">

                <td>
                    <a href="productDetail.htm"><img width="90" alt="${**Iterator.next().**product.productName}" src="${product.productImage}"/></a>

                    <a href="productDetail.htm"><c:out value="${**Iterator.next().**product.productName}" /></a>

                </td>

            </c:forEach>

        </tr>

    </c:forEach>

我很抱歉,如果它是一个愚蠢的问题,任何帮助将不胜感激!感谢

1 个答案:

答案 0 :(得分:3)

假设您每列需要4个产品,然后想要包装到下一行(如果有超过4个产品),则可以使用varStatus:

<tr>
<c:forEach items="${productCollection}" var="product" varStatus="status">
    <c:if test="${status.index % 4 == 0 && !status.first && !status.last}">
        </tr>
        <tr>
    </c:if>

    <td>
        <a href="productDetail.htm"><img width="90" alt="${product.productName}" src="${product.productImage}"/></a>
        <a href="productDetail.htm"><c:out value="${product.productName}" /></a>
    </td>
</c:forEach>
</tr>