is it possible to iterate two items simultaneously using foreach in jstl?

后端 未结 2 779
谎友^
谎友^ 2020-12-28 09:33

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?

相关标签:
2条回答
  • 2020-12-28 10:04

    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>
    
    0 讨论(0)
  • 2020-12-28 10:07

    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>
    
    0 讨论(0)
提交回复
热议问题