1

对不起,如果我的问题不清楚。让我解释一下 - 我有两个大小不等的列表 model.List1 和 model.List2 。但是,我仍然需要以这样的方式显示 model.List2,列表元素出现在Territory列下。如何合并这两个列表?我不知何故需要在标有 ** ** 的块内迭代 List2

编辑:如您所见,列表 1 有五个条目,而列表 2 只有 3 个条目。如果我在我的第一个列表中迭代我的第二个列表,对于 List1 的每次迭代,我都会获得所有 3 个区域(请参阅 SEC1)。这不是我想要的。。

<table>
<thead>
 **<tr>**
  <th>User</th>
  <th>Title</th>
  <th>Role</th>
  <th>Territory</th>

  **</tr>**
</thead>
<tbody>
<c:forEach items="${model.List1}" var="list">
<tr>
<td>${list.name} </td>
<td>${list.title} </td>
<td>${list.role} </td>
</tr>
</c:forEach>



<c:forEach items="${model.List2}" var="terr">
  <td>${terr}</td>      
</c:forEach> 
</tbody>

</table>

电流输出:

User     Title  Role  Territory


user1    Lead   Lead


Territory1

期望的输出:

User     Title  Role      Territory


user1    Lead   Lead      Territory1

user2    Lead2  Lead2     Territory2

user3    Lead3  Lead3     Territory3

User4    Lead4  Lead4

User5    Lead5  Lead5     

SEC1 - 这不是我想要的

User     Title  Role      Territory


user1    Lead   Lead      Territory1 Territory2 Territory3

user2    Lead2   Lead2    Territory1 Territory2 Territory3

user3    Lead3   Lead3    Territory1 Territory2 Territory3
4

1 回答 1

0

你可以这样做

<table>
<c:forEach items="${ list1 }" var="item" varStatus="status1"> 
  <tr>
    <td>${ item.name }</td>

    <td>
      <c:if test="${ status1.index lt fn:length(list2) }">
        ${ list2[status1.index].name }
      </c:if> 
    </td>      
  </tr>
</c:forEach>
</table>

检查第二c:if个列表是否足够大。

相关:forEach 的 varStatus 变量

于 2013-08-07T12:12:12.763 回答