如何在JSP的第一列中显示奇数数据,在第二列中显示偶数数据?

时间:2019-05-06 15:01:33

标签: spring spring-mvc jsp

我必须将数据显示为表格形式。但是问题是我必须在第一列中显示奇数数据,而在第二列中显示偶数数据。而且,这些物品都是地图。

<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>

这是我最近的一次,它以换行符而不是相同的列打印数据。有可能吗?

2 个答案:

答案 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>