我需要将列表中的产品显示为3列foreach
。
这是我的代码:
<table>
<c:forEach items="${lstProduct}" var="product" varStatus="status" step="3">
<tr>
<td>
<!--product of column left will be display here -->
${product.id}
${product.name}
</td>
<td>
<!--product of column middle will be display here -->
<!--I need something like this: productMiddle = product.getNext() -->
</td>
<td>
<!--product of column right will be display here -->
<!-- productRight = productMiddle.getNext() -->
</td>
</tr>
</c:forEach>
</table>
问题是如何在列表中获得下一个产品?
答案 0 :(得分:16)
Skaffman给出了一个很好的答案。作为替代方案,您也可以将<tr>
放在循环外部并在适当的时刻打印中间</tr><tr>
(即每隔3个项目)。
<table>
<tr>
<c:forEach items="${lstProduct}" var="product" varStatus="loop">
<c:if test="${not loop.first and loop.index % 3 == 0}">
</tr><tr>
</c:if>
<td>
${product.id}
${product.name}
</td>
</c:forEach>
</tr>
</table>