2008-11-07 86 views
9

我正在爲我的一個練習項目實現樹標記,在那裏我會以樹的形式(遞歸地)顯示目錄的內容。在JSP2.0以前的版本中,我已經實現了與Java中的自定義標籤類似的要求。 處理目錄需要遞歸(處理子目錄)!是否有可能將此代碼編碼爲標記文件,並且可以以遞歸方式使用它們?JSP標記遞歸

回答

11

下面是從節點顯示一個遞歸標籤文件的一個示例的所有它的兒童recursivly(用於生成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> 
+0

包括標籤本身的taglib的技巧適用於標籤的文件,但我無法在標籤處理程序類中使用它。相關問題:http://stackoverflow.com/questions/2326981/jsp-custom-taglib-nested-evaluation – David 2014-12-01 17:53:19