是否可以使用jstl中的foreach同时迭代两个项目?

时间:2010-11-10 08:46:59

标签: java model-view-controller spring jsp jstl

我的模型中有两个项目,我想使用jstl foreach在同一个项目中迭代它们。如何使用正确的语法实现此目的?

2 个答案:

答案 0 :(得分:28)

您可以调用varStatus.index来获取当前迭代循环的索引,然后将其用作第二个列表的查找。

例如,如果您有两个列表people.firstnamespeople.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>