我有一个后端服务,正在向我返回一个Info对象。该Info对象具有对象列表,而FolderGroup对象列表又具有FolderGroup对象列表,依此类推。
Info
FolderGroup
基本上,它代表文件夹和子文件夹。但是在我的JSP页面中,我不知道要迭代到什么深度。JSTL如何处理?
创建一个WEB-INF/tags/folderGroups.tag包含以下代码的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}"/>