J'ai deux éléments de mon modèle et je veux les itérer en même temps en utilisant jstl foreach. comment puis-je y parvenir en utilisant une syntaxe correcte?est-il possible d'itérer deux éléments simultanément en utilisant foreach in jstl?
14
A
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
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>
Une approche plutôt droite et intelligente. +1 –
merci. cela a fonctionné. – randy