JSP Tag Recursion - PullRequest
       10

JSP Tag Recursion

10 голосов
/ 07 ноября 2008

Я реализую тег дерева для одного из моих тренировочных проектов, где я бы отображал содержимое каталога в виде дерева (рекурсивно). Я реализовал такое же требование, что и пользовательский тег в Java, в дни до JSP2.0. Обработка каталога требует рекурсии (для обработки подкаталогов)! Можно ли закодировать это как файлы тегов и можно ли их использовать рекурсивно?

1 Ответ

12 голосов
/ 02 июля 2010

Вот пример файла рекурсивных тегов, который отображает из узла все его дочерние элементы рекурсивно (используется для генерации YUI дерева ):

/ WEB-INF / теги / nodeTree.tag

<%@tag description="display the whole nodeTree" pageEncoding="UTF-8"%>
<%@attribute name="node" type="com.myapp.Node" required="true" %>
<%@taglib prefix="template" tagdir="/WEB-INF/tags" %>
<li>${node.name}
<c:if test="${fn:length(node.childs) > 0}">
    <ul>
    <c:forEach var="child" items="${node.childs}">
        <template:nodeTree node="${child}"/>
    </c:forEach>
    </ul>
</c:if>
</li>

Это можно использовать в обычном файле JSP, например:

<div id="treeDiv1">
    <ul>
        <c:forEach var="child" items="${actionBean.rootNode.childs}">
            <template:nodeTree node="${child}"/>
        </c:forEach>
    </ul>
</div>
...