Показать список в списке с foreach в jsp - PullRequest
0 голосов
/ 17 января 2012

Можно ли отобразить элементы списка в списке с foreach в jsp?

List<List<String>> elements;

Я думал что-то вроде:

<c:forEach var="charge" items="${customerOfferForm.offersWithCharges.get(0)}">

Ответы [ 3 ]

4 голосов
/ 17 января 2012

Ваш синтаксис будет работать в EL 2.2 (который доступен начиная с контейнеров Servlet 3.0, таких как Tomcat 7, Glassfish 3 и т. Д.), Но не в более старых версиях.Затем можно использовать фигурную скобку [], чтобы получить нужный элемент списка по индексу.

<c:forEach items="${customerOfferForm.offersWithCharges[0]}" var="charge">
    ...
</c:forEach>

При необходимости можно использовать вложенный <c:forEach> для отображения всех элементов.

<c:forEach items="${customerOfferForm.offersWithCharges}" var="offerWithCharges">
    <c:forEach items="${offerWithCharges}" var="charge">
        ...
    </c:forEach>
</c:forEach>

См. Также:

0 голосов
/ 17 января 2012
for(Iterator<String> i = someList.iterator(); i.hasNext(); ) {
  String item = i.next();
  System.out.println(item);
}

List реализует интерфейс Iterable, поэтому приведенный выше код должен работать.

0 голосов
/ 17 января 2012

Как бы вы сделали это с Java-кодом?У вас будет два вложенных цикла, верно?

for (List<String> subList : elements) {
    for (String s : subList) {
        System.out.println(s);
    }
}

Вам потребуется то же самое в вашем JSP:

<c:forEach var="subList" items="${elements}">
    <c:forEach var="s" items="${subList}">
        <c:out value="${s}"/>
    </c:forEach>
</c:forEach>

Если вы знаете размер каждого подсписка, вы можетеполучить один элемент (первый, здесь), используя ${subList[0]}:

<c:forEach var="subList" items="${elements}">
    <c:out value="${subList[0]}"/>
</c:forEach>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...