2013-08-07 2 views
1

내 질문에 분명하지 않은 경우 죄송합니다. 내가 설명해 줘 - 나는 두 목록, 모델. List1 & model.List2 of 크기가 같지 않음. 그러나, 나는 여전히 모델을 표시해야합니다. 그런 식으로 List2 요소는 Territory 열 아래에 나타납니다. 이 두 목록을 어떻게 병합합니까? 나는 ** **jstl의 두 가지 크기가 다른 두 목록을 병합하여 표 형식으로 표시합니다.

으로 표시된 블록 내에서 List2를 반복해야합니다. 편집 : 목록에서 볼 수 있듯이 목록 1에는 5 개의 항목이 있고 목록 2에는 항목이 3 개 있습니다. 첫 번째 목록 내에서 두 번째 목록을 반복 할 경우 List1의 각 반복마다 세 가지 영역 모두를 얻게됩니다 (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 
목록이 충분히 큰 경우

답변

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 검사처럼 그것을 할 수 있습니다.

관련 : 목록이 1의 단일 반복에 대한 (X = sizeof 연산자 (목록 2)의 경우) 내가 원하는 것이 아니다 forEach's varStatus variable

+0

이 목록 2 X 시간에 내용을 인쇄합니다. – user1736333

+0

@ user1736333 질문을 업데이트 해주십시오 : 더 많은 회선/사용자를 추가하여 원하는 것을 볼 수 있습니다. 첫 번째 줄에 출력 * * 만 표시 하시겠습니까? – Beryllium

+0

안녕하세요, 저를 도와 주셔서 감사합니다. 당신의 제안을 시도했을 때 나는 원래 게시물의 SEC1에서 언급 된 것을 얻고 있습니다. 이것은 내가 원하는 것이 아닙니다. 원하는 출력 섹션을 참조하십시오! – user1736333

관련 문제