JSTL foreach: получить следующий объект - PullRequest
8 голосов
/ 04 мая 2011

Мне нужно отобразить товар в списке в 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>

Вопрос в том, как мне получить следующий товар в списке?

1 Ответ

16 голосов
/ 04 мая 2011

Скаффман дал хороший ответ.В качестве альтернативы, вы также можете просто поставить <tr> вне цикла и напечатать промежуточные </tr><tr> s в нужные моменты (т. Е. Каждый 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...