2011-11-03 41 views
1

我要創建我的自定義的Java JSP標記的樹結構,如:嵌套樹結構的Java JSP自定義標籤。

<ul> 
    <li> 
     <a href="#">Root</a> 
     <ul> 
      <li><a href="#">Node</a></li> 
      <li><a href="#">Node</a></li> 
      <li><a href="#">Node</a></li> 
      <li> 
       <a href="#">Node</a> 
       <ul> 
        <li><a href="#">Node</a></li> 
        <li><a href="#">Node</a></li> 
       </ul> 
      </li> 
     </ul> 
    </li> 
</ul> 

在JSP文件的XML應該是這樣的:

<lib:treeview> 
    <lib:treenode path="/some/path.do" label="Root"> 
    <lib:treenode path="/some/path.do" label="NodeLabel"/> 
    <lib:treenode path="/some/path.do" label="NodeLabel"/> 
    <lib:treenode path="/some/path.do" label="NodeLabel"/> 
    </lib:node> 
</lib:treeview> 

難道有人實現嵌套結構,這樣的一?哪些課程更好用?也許有人有一些有用的鏈接?幫助,請:)

回答

1

沒有測試此,這樣的事情應該工作:

treeview.tag:

<%@ tag description="treeview" %> 
<ul> 
    <jsp:doBody /> 
</ul> 

treenode.tag:

<%@ tag description="treenode" %> 
<%@ attribute name="label" required="true" type="java.lang.String" %> 
<%@ attribute name="path" required="true" type="java.lang.String" %> 
<li> 
    <a href="${path}">${label}</a> 
    <jsp:doBody /> 
</li> 

test.jsp的:

<lib:treeview> 
    <lib:treenode label="root" path="#"> 
     <lib:treeview> 
      <lib:treenode label="node" path="#"> 
      <lib:treenode label="node" path="#"> 
      <lib:treenode label="node" path="#"> 
     </lib:treeview> 
    </lib:treenode> 
</lib:treeview> 

o輸出:

<ul> 
    <li> 
     <a href="#">root</a> 
     <ul> 
      <a href="#">node</a> 
      <a href="#">node</a> 
      <a href="#">node</a> 
     </ul> 
    </li> 
</ul>