JSTL Печать элементов arrayList

У меня есть страница JSP, которая получает ArrayList объектов событий, каждый объект события содержит ArrayList дат. Я перебираю объекты событий следующим образом:

Как я могу выполнить итерацию по dateTimes ArrayList каждого объекта события и распечатать дату / время каждого события?

Похоже, вы пропустили код своего вопроса.

cletus 20.12.2008 19:24
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
8 821
2

Ответы 2

Если я понимаю ваш вопрос, по сути, у вас есть ArrayList из ArrayLists. JSTL имеет несколько довольно странных правил того, что такое действительная «коллекция элементов». Спецификация JSTL 1.2 не ответил на это достаточно, поэтому я перешел к исходному коду.

forEach может перебирать:

  • Массив собственных типов или типов Объект (Примечание: включает любые общие массивы из-за стирания типа);
  • Коллекция или любой подкласс;
  • Любой Итератор;
  • Перечисление;
  • Что-нибудь, реализующее карта; или же
  • Значения, разделенные запятыми, как Нить. Это устаревшее поведение.

Использование Предупреждение: Итераторов и Перечислений в этом контексте потенциально проблематично, поскольку это изменяет их состояние и нет возможности их сбросить (через JSTL).

В любом случае, код прост:

<%@ taglib uri = "http://java.sun.com/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jstl/fmt" prefix = "fmt" %>
<c:forEach var = "event" items = "${events}">
  <c:forEach var = "date" items = "${event}">
    <fmt:formatDate value = "${date}" type = "both"
      timeStyle = "long" dateStyle = "long" />
  </c:forEach>
</c:forEach>

Предполагая, что объект события - это просто набор дат. Если эта коллекция является собственностью, просто замените ${event} на ${event.dates} или что-то еще.

по крайней мере, для jsp 2.0 недостаточно реализовать итеративный

krosenvold 20.12.2008 20:03
<%@ taglib uri = "http://java.sun.com/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jstl/fmt" prefix = "fmt" %>
 <c:forEach items = "${events}" var = "event">
     <c:forEach items = "${event.dates}" var = "date">
          <fmt:formatDate value = "${date}" type = "both"
          timeStyle = "long" dateStyle = "long" />
      </c:forEach>
 </c:forEach>

Другие вопросы по теме