Pergunta
Estou implementando uma tag tree para um dos meus projetos de prática, onde eu iria mostrar o conteúdo de um diretório na forma de uma árvore (de forma recursiva). Eu tinha implementado uma exigência semelhante como uma marca personalizada em Java durante os dias pré-JSP2.0. Manipulação de um diretório necessidades recursão (para lidar com os subdiretórios)! É possível codificar isso como arquivos de marca e podem ser utilizados de uma forma recursiva?
Solução
Aqui está um exemplo de um arquivo de tag recursiva que apresenta de um nó de tudo é as crianças recursivly (usado para gerar um 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>
Isto pode ser usado em um arquivo JSP regular como esta:
<div id="treeDiv1">
<ul>
<c:forEach var="child" items="${actionBean.rootNode.childs}">
<template:nodeTree node="${child}"/>
</c:forEach>
</ul>
</div>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow