list - jmdoudoux - varstatus jstl




Itérer sur les éléments de List et Map à l'aide de la balise JSTL<c: forEach> (2)

Mark, ceci est déjà répondu dans votre sujet précédent . Mais OK, ici c'est encore:

Supposons que ${list} pointe sur une List<Object> , puis ce qui suit

<c:forEach items="${list}" var="item">
    ${item}<br>
</c:forEach>

fait essentiellement la même chose que de suivre dans "Java normal":

for (Object item : list) {
    System.out.println(item);
}

Si vous avez une List<Map<K, V>> place, alors

<c:forEach items="${list}" var="map">
    <c:forEach items="${map}" var="entry">
        ${entry.key}<br>
        ${entry.value}<br>
    </c:forEach>
</c:forEach>

fait essentiellement la même chose que de suivre dans "Java normal":

for (Map<K, V> map : list) {
    for (Entry<K, V> entry : map.entrySet()) {
        System.out.println(entry.getKey());
        System.out.println(entry.getValue());
    }
}

La key et la value sont ici pas des méthodes spéciales. Ce sont en fait des méthodes getter de l'objet Map.Entry (cliquez sur le lien bleu Map.Entry pour voir le doc API). En EL (langage d'expression), vous pouvez utiliser le . opérateur point pour accéder aux méthodes getter en utilisant "nom de la propriété" (le nom de la méthode getter sans le préfixe get ), tout juste en fonction de la spécification Javabean.

Cela dit, vous devez vraiment nettoyer les "réponses" dans votre sujet précédent car ils ajoutent du bruit à la question. Lisez aussi les commentaires que j'ai postés dans vos "réponses".

Si j'ai un bean backing JSF retourner un objet de type ArrayList, je devrais pouvoir utiliser <c:foreach> pour itérer sur les éléments de la liste. Chaque élément contient une carte et bien que la question de l'accès au contenu de la carte via JSTL ait été résolue here , si je passe un tableau de ces cartes, je ne peux pas trouver comment les parcourir et accéder au contenu de la carte en utilisant JSTL . Il y a de la documentation qui se réfère à des itérateurs simples mais pas à ceux dont les éléments sont eux-mêmes des cartes.

Si quelqu'un peut me donner un exemple simple de la façon dont une liste Java est itérée dans JSP, je serais massivement reconnaissant. marque


essaye ça

<c:forEach items="${list}" var="map">
    <tr>
        <c:forEach items="${map}" var="entry">

            <td>${entry.value}</td>

        </c:forEach>
    </tr>
</c:forEach>






jstl