I have two items from my model and I want to iterate them at the same using jstl foreach. how can I achieve this using a correct syntax?
You can call varStatus.index
to get the index of the current round of iteration, and then use it as a lookup for the second list.
For example, if you have two lists people.firstnames
and people.lastnames
you can do:
<c:forEach var="p" items="${people.firstnames}" varStatus="status">
<tr>
<td>${p}</td>
<td>${people.lastnames[status.index]}</td>
</tr>
</c:forEach>
I assume you have to collections that you want to iterate in one go. Add a getter which will merge these two collections and use it for the iteration. For example
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;
}
Iteration in JSTL:
<c:forEach var="p" items="${people.both}">
<tr>
<td>${p}</td>
</tr>
</c:forEach>