2010-11-10 11 views

Répondre

26

Vous pouvez appeler varStatus.index pour obtenir l'indice du cycle de l'itération courante, puis l'utiliser comme une recherche pour la deuxième liste.

Par exemple, si vous avez deux listes people.firstnames et people.lastnames que vous pouvez faire:

<c:forEach var="p" items="${people.firstnames}" varStatus="status"> 
    <tr> 
     <td>${p}</td> 
     <td>${people.lastnames[status.index]}</td> 
    </tr> 
</c:forEach> 
+0

Une approche plutôt droite et intelligente. +1 –

+0

merci. cela a fonctionné. – randy

0

Je suppose que vous avez des collections que vous voulez itérer en une fois. Ajouter un getter qui va fusionner ces deux collections et l'utiliser pour l'itération. Par exemple

private Collection<String> first; 
private Collection<String> second; 

public Collection<String> getBoth() 
{ 
    List<String> result = new ArrayList<String>(); 
    result.addAll(first); 
    result.addAll(second); 
    return result; 
} 

itératifs en JSTL:

<c:forEach var="p" items="${people.both}"> 
    <tr> 
     <td>${p}</td> 
    </tr> 
</c:forEach> 
+0

utilisant cela, comment puis-je itérer la première et la deuxième collection en utilisant foreach jstl? merci boris – randy

+0

Utilisez le résultat de getBoth() ??? – ZeissS