2008-11-07 16 views
9

मैं अपनी प्रोजेक्ट प्रोजेक्ट्स में से एक के लिए एक पेड़ टैग लागू कर रहा हूं, जहां मैं एक पेड़ के रूप में एक निर्देशिका की सामग्री प्रदर्शित करता हूं (पुनरावर्ती)। मैंने पूर्व-जेएसपी 2.0 दिनों के दौरान जावा में एक कस्टम टैग के रूप में एक समान आवश्यकता लागू की थी। निर्देशिका को संभालने के लिए रिकर्सन (उपनिर्देशिका को संभालने के लिए) की आवश्यकता है! क्या टैग टैग के रूप में इसे कोड करना संभव है और क्या उन्हें रिकर्सिव तरीके से इस्तेमाल किया जा सकता है?जेएसपी टैग रिकर्सन

उत्तर

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- मूल्यांकन – David

संबंधित मुद्दे