Si je comprends votre question, vous avez essentiellement une ArrayList de ArrayLists. JSTL a quelques règles assez étranges pour ce qu'est une "collection" "d'objets" valide. Cela n'a pas été suffisamment répondu par le JSTL 1.2 specification donc je suis allé au code source.
forEach peut itérer:
- Un tableau de types natifs ou Object (Note: cela inclut tous les tableaux génériques en raison de l'effacement de type);
- Collection ou toute sous-classe;
- Tout Iterator;
- An Enumeration;
- Tout ce qui met en œuvre Map; ou
- Valeurs comma-séparées en tant que String. C'est un comportement obsolète.
Mise en garde: utilisation des itérateurs et dénombrements dans ce contexte est potentiellement problématique car cela modifie leur état et il n'y a aucun moyen de les réinitialiser (via JSTL).
Quoi qu'il en soit, le code est simple:
<%@ 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>
Si l'on suppose l'objet événement est simplement une collection de dates. Si cette collection est une propriété, il suffit de remplacer ${event}
par ${event.dates}
ou autre.
Vous semblez avoir omis le code de votre question. – cletus