Mam dwa elementy z mojego modelu i chcę iterować je w tym samym użyciu forex jstl. jak mogę to osiągnąć, używając poprawnej składni?Czy można iterować dwa elementy jednocześnie za pomocą foreach w jstl?
14
A
Odpowiedz
26
Można zadzwonić varStatus.index
aby uzyskać indeks bieżącego rundzie iteracji, a następnie użyć go jako odnośnika do drugiej listy.
Na przykład, jeśli masz dwie listy people.firstnames
i people.lastnames
można zrobić:
<c:forEach var="p" items="${people.firstnames}" varStatus="status">
<tr>
<td>${p}</td>
<td>${people.lastnames[status.index]}</td>
</tr>
</c:forEach>
0
Zakładam, że musisz kolekcje, które chcesz iterować za jednym razem. Dodaj moduł pobierający, który połączy te dwie kolekcje i użyje go do iteracji. Na przykład
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;
}
iteracji w JSTL:
<c:forEach var="p" items="${people.both}">
<tr>
<td>${p}</td>
</tr>
</c:forEach>
Całkiem proste i sprytne podejście. +1 –
dzięki. to działało. – randy