



Если я понимаю ваш вопрос, по сути, у вас есть 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 недостаточно реализовать итеративный
<%@ 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>
Похоже, вы пропустили код своего вопроса.