使用JSP渲染嵌套列表

时间:2009-10-30 20:17:31

标签: java jsp jstl

我需要通过JSP渲染一个3级深度的项目列表。假设我的字符串属性为“Country”,“City”,“Street”。我需要构建一个UL和LI标签的层次结构来显示街道,使它们列在适当的城市下面,并且每个城市都列在相应的国家/地区。

示例:

<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做到这一点?

1 个答案:

答案 0 :(得分: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>