i have the following problem (new to jstl), need to create 4 columns of products in a e-store, however dont know how to manually iterate trhough the array, got this code which repeats the product for each row:
<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>
i need to move trhough the productColeection arrayList manually on the second loop. i wish i could do something like with the Java Iterator:
<c:for开发者_JAVA百科Each 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>
Im sorry if its a dumb question, any help would be appreciated! Thanks
assuming you want 4 products per column, and then want to wrap to the next row if there's more than 4 products, you could use a 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>
精彩评论