2008-11-07 22 views
9

Wdrażam tag drzewa dla jednego z moich projektów ćwiczeniowych, w którym będę wyświetlał zawartość katalogu w formie drzewa (rekursywnie). W okresie pre-JSP2.0 zaimplementowałem podobny wymóg, jak tag niestandardowy w Javie. Obsługa katalogu wymaga rekursji (do obsługi podkatalogów)! Czy można to zakodować jako pliki znaczników i czy można je wykorzystać w sposób rekurencyjny?Receptura znaczników JSP

Odpowiedz

11

Oto przykładem rekurencyjnego pliku znacznika, który wyświetla od węzła wszystko to dzieci recursivly (używany do generowania 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> 

ten może być stosowany w zwykłym pliku JSP tak:

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

sztuczka z tym tagu własne tagLib działa dla plików znaczników, ale nie mogłem tego użyć w klasie obsługi znaczników. Powiązane pytanie: http://stackoverflow.com/questions/2326981/jsp-custom-taglib-nested-evaluation – David

Powiązane problemy