我的模型中有两个项目,我想使用jstl foreach在同一个项目中迭代它们。如何使用正确的语法实现此目的?
答案 0 :(得分:28)
您可以调用varStatus.index
来获取当前迭代循环的索引,然后将其用作第二个列表的查找。
例如,如果您有两个列表people.firstnames
和people.lastnames
,则可以执行以下操作:
<c:forEach var="p" items="${people.firstnames}" varStatus="status">
<tr>
<td>${p}</td>
<td>${people.lastnames[status.index]}</td>
</tr>
</c:forEach>
答案 1 :(得分:0)
我假设您需要一次性迭代的集合。添加一个getter,它将合并这两个集合并将其用于迭代。例如
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;
}
JSTL中的迭代:
<c:forEach var="p" items="${people.both}">
<tr>
<td>${p}</td>
</tr>
</c:forEach>