最近在研究jsp中树的动态输出,由于技术水平低,试了好多空间,都没有成功,大家一定要帮帮忙啊!万分感谢!!

解决方案 »

  1.   

    是javascript的作的树目录吗?
    我倒是有那个插件了
    阿赖组件
    你在百度摆一下就OK拉
      

  2.   

    <%@ page import="com.jenkov.prizetags.tree.impl.TreeNode,
                     com.jenkov.prizetags.tree.impl.Tree,
                     com.jenkov.prizetags.tree.itf.*"%>
    <%@page import="java.util.*,org.spring.dao.factory.DaoFactory" %>
    <%@page import="net.rate.dao.*" %>
    <%@page import="net.rate.manager.*" %>
    <%@page import="net.rate.deal.*" %>
    <%@page import="net.rate.definevariable.* , org.spring.jdbc.core.DateAccessException"  %> 
    <%@ taglib uri="/WEB-INF/treetag.tld" prefix="tree" %>
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage=""%>
    <%@ include file="../golbal/connection.jsp"%>
    <html>
    <head>
    <%
    //ΪʲôÊ÷»á»ØÈ¥ÒòΪnew
    PublicManager pub=new PublicManager();String newtree=request.getParameter("new");
    if(newtree==null) newtree="";
    if(newtree.equals("yes"))
    {  ITree       tree          = new Tree();
       tree.setSingleSelectionMode(true);
       ITreeNode   root = new TreeNode( ("r-root")    , "µçÄÔ³öÈëÃ÷ϸ"       , "");  
     
       String node1id="",node1name="",node2id="",node2name="";   
       try{
         List list=pub.getcoms("","" ,"", "");
     Iterator iterator= list.iterator();
         while(iterator.hasNext())
         {
       Company obj1=(Company)iterator.next();
       node1id=obj1.getCshort();
       node1name="<img src=\"../images/gif/comid.gif\" width=\"13\" height=\"11\" border=\"0\">"+obj1.getC_name();
           ITreeNode  comp = new TreeNode( node1id ,node1name ,"");
           root.addChild(comp);    
       
        PeijianM deal=new PeijianM();
            List list2=deal.getkclb(node1id);
            Iterator iterator2= list2.iterator();
    while(iterator2.hasNext()){
         Peijian obj2=(Peijian)iterator2.next(); 
         node2id=obj2.getPm()+"¢Ù"+obj2.getGg()+"¢Ú"+obj2.getCom();
         node2name="<img src=\"../images/gif/kc.gif\" border=\"0\">"+obj2.getPm()+" "+obj2.getGg()+"<br><font color=\"#00CC00\">½ø<font color=\"#003399\">"+obj2.getRq()+"</font>³ö<font color=\"#003399\">"+obj2.getSl()+"</font>&nbsp;¿â´æ<font color=\"#003399\">"+obj2.getXlh()+"<br>&nbsp;</font></font>";
         ITreeNode   pc= new TreeNode( node2id ,node2name , "");
             comp.addChild(pc);
        }
     }        
    }
       catch(DateAccessException e)
       { out.println(e);} 
         tree.setRoot(root);
         tree.expand(root.getId());       
         session.setAttribute("pctree", tree);
    }
    %><meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>µçÄÔÊ÷ÐÍ¿â´æ</title>
    <link href="../css/public.css" rel="stylesheet" type="text/css">
    </head><body><tree:onExpand></tree:onExpand><tree:onSelect>
    <%
    String idcode=request.getParameter("select");
    idcode=new String(idcode.getBytes("ISO8859_1"),"GBK");
    %>
    <%if(idcode.indexOf("¢Ù")>-1){%>
    <script>parent.rFrame.location='pcview.jsp?seakey=<%=idcode%>';</script>  
    <%}else {%>  <script>parent.rFrame.location='pcviewall.jsp?seakey=<%=idcode%>';</script>  <%}%>
    </tree:onSelect><br>
    <form name="form"  method="post" action="pctree.jsp">
    <table cellspacing="0" cellpadding="0" border="0">
    <tree:tree tree="pctree" node="tree.node" >
        <tr><td
        ><table cellspacing="0" cellpadding="0" border="0">
        <tr><td><tree:nodeIndent    node="tree.node" indentationType="type"><tree:nodeIndentVerticalLine indentationType="type" ><img src="../images/verticalLine.png"></tree:nodeIndentVerticalLine><tree:nodeIndentBlankSpace   indentationType="type" ><img src="../images/blankSpace.png"></tree:nodeIndentBlankSpace></tree:nodeIndent></td>
        <tree:nodeMatch    node="tree.node" expanded="false" hasChildren="true"  isLastChild="false"><td><a href="pctree.jsp?expand=<tree:nodeId node="tree.node"/>"><img src="../images/collapsedMidNode.png" border="0"></a></td></tree:nodeMatch>
        <tree:nodeMatch    node="tree.node" expanded="true"  hasChildren="true"  isLastChild="false"><td><a href="pctree.jsp?collapse=<tree:nodeId node="tree.node"/>"><img src="../images/expandedMidNode.png"  border="0"></a></td></tree:nodeMatch>
        <tree:nodeMatch    node="tree.node" expanded="false" hasChildren="true"  isLastChild="true" ><td><a href="pctree.jsp?expand=<tree:nodeId node="tree.node"/>"><img src="../images/collapsedLastNode.png"  border="0"></a></td></tree:nodeMatch>
        <tree:nodeMatch    node="tree.node" expanded="true"  hasChildren="true"  isLastChild="true" ><td><a href="pctree.jsp?collapse=<tree:nodeId node="tree.node"/>"><img src="../images/expandedLastNode.png" border="0"></a></td></tree:nodeMatch>
        <tree:nodeMatch    node="tree.node" expanded="false" hasChildren="false" isLastChild="false"><td><img src="../images/noChildrenMidNode.png"></td></tree:nodeMatch>
        <tree:nodeMatch    node="tree.node" expanded="false" hasChildren="false" isLastChild="true" ><td><img src="../images/noChildrenLastNode.png"></td></tree:nodeMatch>    <td valign="top">
        <tree:nodeMatch node="tree.node" selected="true"><span style="Font-Size: 12px;"><b><tree:nodeName      node="tree.node"/></b></span></tree:nodeMatch>
        <tree:nodeMatch node="tree.node" selected="false"><a href="pctree.jsp?select=<tree:nodeId node="tree.node"/>"><span style="Font-Size: 12px;"><tree:nodeName      node="tree.node"/></span></a></tree:nodeMatch>  
        <tree:detachNodeObject node="tree.node" detachedObject="theNodeObject"/>
        <%  if(request.getAttribute("theNodeObject") != null){
               out.print(request.getAttribute("theNodeObject"));
            }
        %>
        </td>
        </tr>
        </table></td></tr>
    </tree:tree>
    </table>
    </form>
    </body>
    </html>
      

  3.   

    上面的是我用的一个控件(jsp标签)  在jsp树的查找中算是速度最快的 公司5000多个员工 多个部门全部呈现出来
    只需要3秒种  换用ext2树虽然漂亮但是慢你可以自己上网找找 控件主要包括 treetag.tld     
    jenkov-prizetags-bin-2.1.6.jar 
      

  4.   

    前面的代码 java服务端代码主要是建立 node 节点
    ITreeNode   root = new TreeNode( ("r-root")    , "节点名"       , "");   
    ITreeNode  comp = new TreeNode( node1id ,node1name ,""); 
    root.addChild(comp);    
    后台的 <tree:tree tree="pctree" node="tree.node" > 
    ..............
    </tree:tree> 
    这些都是调用 treetag.tld 主动生成树的  这2步搞好就可以 其他的不必深究