JSTL forEach l'ordre inverse
À l'aide de JSTL est forEach
tag, est-il possible d'itérer dans l'ordre inverse?
- La accepté de répondre à d'Eddie sur cette question pourrait ne pas fonctionner pour tout le monde. Au moins, il n'a pas de travail pour moi à l'aide de Jakarta (Apache) la mise en œuvre de la JSTL 1.1 et Sun (Oracle) de la mise en œuvre de la JSTL 1.2. Aussi la spec mandats que
step
doit être>=1
. Pour une alternative, voir stackoverflow.com/questions/3879248/... - La bonne explication pour décrémenter est une http://stackoverflow.com/a/3883595/621951
Vous devez vous connecter pour publier un commentaire.
Lorsque vous utilisez
forEach
pour créer une boucle entier, vous pouvez aller de l'avant ou l'arrière, mais cela nécessite un peu de travail. Il s'avère que vous ne pouvez pas le faire, par exemple:parce que la spécification exige que l'étape est positive. Mais vous pouvez toujours en boucle en marche avant et ensuite utiliser
<c:var
pour convertir le nombre d'incrémentation dans une décrémentation de nombre:Cependant, quand vous faites une
forEach
sur une Collection de quelque sorte, je ne suis pas au courant de toute façon pour avoir les objets dans l'ordre inverse. Au moins, non sans d'abord trier les éléments dans l'ordre inverse et puis à l'aide deforEach
.J'ai navigué avec succès un
forEach
boucle dans un ordre souhaité, en faisant quelque chose comme ce qui suit dans une JSP:Avec un Comparateur, vous pouvez faire une boucle sur les éléments dans n'importe quel ordre. Les travaux de cette. Mais je ne suis pas au courant d'une façon de dire, très simplement, itérer dans l'ordre inverse de la collection fournie.
Vous pourriez aussi envisager de déployer une coutume JSTL fonction qui a renvoyé l'inversion de la copie de votre liste, soutenu par quelque chose comme ceci:
Ne fonctionne pas pour les Collections, mais comme il est mentionné dans une autre réponse, le concept de commande est un peu vague pour certaines collections.
Bâtiment sur la réponse donnée par Eddie, j'ai utilisé le code suivant pour effectuer une itération sur une collection dans l'ordre inverse.
Donné une collection appelée "liste", qui stocke une liste de personnes.
Nous pouvons faire cela avec un peu d'astuce:-
Sortie sera :- 10 9 8 7 6 5 4 3 2 1
Vous pourriez inverser la Collection avant de l'ajouter à votre modèle.
Cela signifie également que vous n'auriez pas besoin de faire quoi que ce soit dans la couche vue d'atteindre votre condition.