【发布时间】:2013-01-03 08:32:38
【问题描述】:
我有一个后端服务返回一个Info 对象。这个Info 对象有一个FolderGroup 对象列表,而FolderGroup 对象列表又是FolderGroup 对象列表等等。
基本上就是表示文件夹和子文件夹。但是在我的 JSP 页面中,我不知道要迭代到什么深度。 JSTL如何处理?
【问题讨论】:
标签: jsp user-interface view collections jstl
我有一个后端服务返回一个Info 对象。这个Info 对象有一个FolderGroup 对象列表,而FolderGroup 对象列表又是FolderGroup 对象列表等等。
基本上就是表示文件夹和子文件夹。但是在我的 JSP 页面中,我不知道要迭代到什么深度。 JSTL如何处理?
【问题讨论】:
标签: jsp user-interface view collections jstl
创建一个包含以下代码的 JSP 标记文件 (WEB-INF/tags/folderGroups.tag):
<%@ attribute name="list" required="true" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="myTags" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:if test="${!empty list}">
<ul>
<c:forEach var="folderGroup" items="${list}">
<li><c:out value="${folderGroup.name}"/></li>
<myTags:folderGroups list="${folderGroup.subGroups}"/>
</c:forEach>
</ul>
</c:if>
标签递归调用自身生成文件夹树。
在你的 JSP 中,做
<%@ taglib tagdir="/WEB-INF/tags" prefix="myTags" %>
...
<myTags:folderGroups list="${info.folderGroups}"/>
【讨论】:
type 添加到属性中,否则我将其作为字符串获取。即<%@ attribute name="list" type="MyClass" required="true" %>