2008-11-07 6 views
9

Ich bin ein Baum-Tag für eine meiner Praxis-Projekte implementieren, wo ich den Inhalt eines Verzeichnisses in Form eines Baumes (rekursiv) anzeigen würde. Ich hatte während der Zeit vor JSP2.0 eine ähnliche Anforderung wie ein benutzerdefiniertes Tag in Java implementiert. Die Behandlung eines Verzeichnisses erfordert Rekursion (um die Unterverzeichnisse zu behandeln)! Ist es möglich, dies als Tag-Dateien zu codieren und können sie rekursiv verwendet werden? HierJSP Tag Rekursion

Antwort

11

ist ein Beispiel für eine rekursive Tag-Datei, die von einem Knoten zeigt alle es rekursiven Kinder (zur Erzeugung eines 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> 

Dies kann, wie dies in einer regulären JSP-Datei verwendet werden:

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

der Trick mit dem Tag der eigenen taglib für Tag-Dateien von einschließlich funktioniert, aber ich war nicht in der Lage, dies in einer Tag-Handler-Klasse zu verwenden. In Verbindung stehende Frage: http://stackoverflow.com/questions/2326981/jsp-custom-taglib-nested-evaluation – David

Verwandte Themen