Я реализую древовидный тег для одного из моих проектов практики, где я отобразил бы содержание каталога в форме дерева (рекурсивно). Я реализовал подобное требование как Пользовательский Тег в Java в течение pre-JSP2.0 дней. Для обработки каталога нужна рекурсия (для обработки подкаталогов)! Действительно ли возможно кодировать это как файлы тега, и они могут использоваться рекурсивным способом?
Вот пример рекурсивного файла тегов, который отображает из узла все его дочерние элементы рекурсивно (используется для создания YUI treeview ):
/WEB-INF/tags/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>