2009-10-30 5 views
1

JSP를 통해 3 레벨의 항목 목록을 렌더링해야합니다. String 속성이 "Country", "City", "Street"인 bean이 있다고 가정 해 봅시다. 나는 해당 도시 아래 나열되어 있고 각 도시가 해당 국가 아래에 나열되도록 거리를 보여주기 위해 UL 및 LI 태그의 계층을 구축해야합니다.JSP로 중첩 목록 렌더링

예 : 분명히

<ul> 
<li>United States 
    <ul> 
    <li>Washingron 
      <ul> 
     <li>Independence Ave</li> 
     <li>23d Street</li> 
     </ul> 
    </li> 
    <li>Detroit 
     ... 
    </li> 
    </ul> 
</li> 
<li>United Kingdom 
... 
</li> 
</ul> 

, 나는 foreach는 사용할 수 있지만, 각 목록은 제대로 열고 닫는 태그 if 문의 톤을 필요로한다. JSTL을 통해이 작업을 수행 할 수있는 간단한 방법이 있습니까?

+0

왜 "t 문장이 필요합니까?" 지금까지 해봤 던 것을 보여줄 수 있습니까? –

+0

그리고이 목록을 저장하는 데이터 구조는 무엇입니까? 그것의 목록의 목록, 그때 당신이 원한 것을 할 간단한 경우. – Chii

+0

문제는 논리적으로 특정 속성을 가진 거리 객체 집합 일뿐입니다. 나머지는 그냥 뉘앙스를 렌더링하는 것이므로 뷰/JSP에서 어떻게 든 처리해야한다고 가정합니다. – Gambler

답변

3
<ul> 
<c:forEach items="${countriesList}" var="country"> 
    <li>${country.name} 
     <ul> 
     <c:forEach items="${country.stateList}" var="state"> 
      <li>${state.name} 
       <ul> 
        <c:forEach items="${state.addressLines}" var="addressLine"> 
         <li>${addressLine.addressString}</li> 
        </c:forEach> 
       </ul> 
      </li> 
     </c:forEach> 
     </ul> 
    </li> 
</c:forEach> 
</ul> 
+0

"if statements of tons"가 누락되었습니다. 즉, 국가에 주나 주나 주정부에 주소가 있는지 여부를 확인해야합니다. 그것들이 없으면'

    '을 인쇄하고 오류가 있으면 (콜렉션이 널인 경우) 최악의 경우 실패합니다. – ChssPly76

    +0

    왜 if 문을 사용해야하는지 알지 못합니다. 렌더링 할 데이터 구조가 올바른 데이터를 가져야합니다. 서블릿/컨트롤러는 렌더링 단계로 가기 전에 정확한 데이터를 빗나가고 필터링해야합니다. – Chii

    +0

    나는 동의하지 않는다. 뷰 자체가 올바르게 렌더링됩니다. 모델도 컨트롤러도 신경 써서는 안된다. – ChssPly76