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?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
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>
回答2:
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>