我只是想知道如何结束特定列中的项目列表,并在单独的列中继续其余项目。例如:在第一列中,有些行的值为" item1"," item2"," item3"在第二栏作为延续,有值" item4"," item5"," item6"。
实际上,我希望连续4列各有5个项目。如何在jsp页面中使用foreach循环在下面的代码中应用它?
<table>
<c:forEach items="${itemList}" var="item">
<tr>
<td><input type ="submit" class="Items btnColor"
value="${item.itemName}" label ="${item.itemId}" />
</td>
</tr>
</c:forEach>
</table>
请帮助,非常感谢!
答案 0 :(得分:0)
您可以使用varStatus
变量来确定循环的索引,并使用if条件跳过该迭代,如:
假设您的表有5列,您必须跳过第3列,然后
<c:set value="2" var="firstIndex" /> // this is the columnIndex which is not required
<c:set value="5" var="splitColumn" /> // thi is the total length of arraylist
<table>
<c:forEach items="${itemList}" var="item" varStatus="itemLoop">
<c:if test="${not (itemLoop.count eq firstIndex)}"> // this condition will skip the third column elements indexes from your arraylist.
<c:set value="${firstVal+5}" var="firstIndex" /> // this is increment in you arraylist index for all values ocurring at 3rd column
<c:if test="${(itemLoop.count eq splitColumn)}"> // this condition will create a row element after every 5 elements read from array list.
<tr>
</c:if>
<td><input type ="submit" class="Items btnColor"
value="${item.itemName}" label ="${item.itemId}" />
</td>
<c:if test="${(itemLoop.count eq splitColumn)}"> // increment for the no of rows to split after very 5 elements
<c:set value=${splitColumn+5} var="splitColumn" />
</tr>
<c:if/>
</c:if>
</c:forEach>
</table>