我必须将数据显示为表格形式。但是问题是我必须在第一列中显示奇数数据,而在第二列中显示偶数数据。而且,这些物品都是地图。
<table>
<c:forEach items="${myMap}"
var="subcategory" varStatus="status">
<c:if test="${status.count % 2 != 0 }">
<tr>
<td>${subcategory.value}</td>
</tr>
<tr>
</tr>
</c:if>
<c:if test="${status.count % 2 == 0 }">
<tr>
</tr>
<tr>
<td>${subcategory.value}</td>
</tr>
</c:if>
</c:forEach>
这是我最近的一次,它以换行符而不是相同的列打印数据。有可能吗?
答案 0 :(得分:0)
您可以将地图转换成一个数组,然后每两个值对该数组进行迭代,并在每次迭代时打印两个值。
<c:set var="mapToList" value="${myMap.values().toArray()}"/>
<table>
<c:forEach items="${mapToList}" var="item" step="2" varStatus="status">
<tr>
<td>${mapToList[status.index]}</td>
<c:if test="${!status.last}">
<td>${mapToList[status.index+1]}</td>
</c:if>
</tr>
</c:forEach>
</table>
答案 1 :(得分:0)
我找到了解决方案。添加一个行跨有效。我不知道为什么。我需要退后一步去考虑它,但是它可以工作。
<table style="width: 100%">
<c:forEach items="${myMap}" var="subcategory" varStatus="status">
<tr>
<c:if test="${status.index % 2 == 0}">
<td rowspan="2">${subcategory.value}</td>
</c:if>
<c:if test="${status.index %2 != 0}">
<td>${subcategory.value}</td>
</c:if>
</tr>
</c:forEach>