Как показать нечетные данные в первом столбце и четные данные во втором столбце в JSP? - PullRequest
0 голосов
/ 06 мая 2019

Я должен показать данные в виде таблицы. Но проблема в том, что я должен показать нечетные данные в первом столбце и четные данные во втором столбце. Также предметы являются картой.

<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 голосов
/ 06 мая 2019

Я нашел решение. Добавление ряда строк сработало. Понятия не имею почему. Мне нужно сделать шаг назад и подумать об этом, но это работает.

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

0 голосов
/ 06 мая 2019

Вы можете преобразовать свою карту в массив, итерировать по этому массиву каждые два значения и печатать два значения на каждой итерации.

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...