PDA

Visualizza la versione completa : [JAVA/JSP] Numero di occorrenze in un <c:foreach>


brovez
04-01-2006, 18:59
Ciao
sto utilizzando il tag <c:foreach> per generare un loop su una collection.
E' possibile conoscere il numero di occorrenze presente nella collection mentre ciclo sulla stessa ?
Mi spiego meglio: avrei la necessità di riconoscere l'ultimo indice trattato dal loop per costruire codice html specifico.

Grazie :dhò:

alka
04-01-2006, 19:59
A quale linguaggio ti riferisci?

E' necessario indicarlo, come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=862017).

Ciao! :ciauz:

brovez
05-01-2006, 08:25
Scusa hai ragione: il oinguaggio utilizzato è [JAVA/JSP]

anx721
05-01-2006, 09:43
Io ho definito una classe wrapper che ha una proprieta size. Cosi ad esempio puoi definirti una classe CollectionWrapper che ha un campo intero size e un campo Collection collection, con i relativi metodi setter e getter (per size meglio non definire il setter).

Quindi costruisci un oggetto CollectionWrapper che mantiene nel campo collection la tua Collection effettiva (nel costruttore inizializzi il campo collection con una collection vuota, fermo restando che la collection effetiva può poi essere impostata dall'esterno col metodo setCollection). Il metodo getSize di CollectionWrapper è definito in modo tale che ritorna collection.size(). Ciò è necessario in quanto il metdodo size() di Collection non rispetta le convenzioni dei java bean e quindi non può essere direttamente invocato su una Collection con il linguaggio expression language delle jsp. Quindi se colWrapper è il tuo oggetto CollectionWrapper, nella jsp colWrapper.size ti dà la dimensione totale, mentre colWrapper.collection ti dà la tua collection su cui iterare.

Questa soluzione è suggerita da By Marty Hall nel suo libro Core Servlets and Jsp. Ovviamente ciò vale se non vuoi utilizzare gli scriplet (scelta giusta secondo me); se no ti basta definire una variabile locale che inizializzi invocando il metodo size() sulla collection.

Loading