1

私の質問が明確でない場合は申し訳ありません。説明させてください - 私は 2 つのリスト、 model.List1 と model.List2 のサイズが等しくありません。ただし、リスト要素がTerritory列の下に表示されるように、model.List2 を表示する必要があります。これら 2 つのリストをマージするにはどうすればよいですか? ** ** でマークされたブロック内で List2 を繰り返す必要があります。

編集: ご覧のとおり、リスト 1 には 5 つのエントリがあり、リスト 2 には 3 つのエントリしかありません。最初のリスト内で 2 番目のリストを反復すると、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>

2 番目のc:ifリストが十分に大きいかどうかをチェックします。

関連: forEach の varStatus 変数

于 2013-08-07T12:12:12.763 に答える