我用的是Oracle数据库,按照梅花雪大师的说明间的数据库表名为Tree,请各位高手帮我实现目录树的动态显示,我最近急着用啊,最好做成Structs模式的,帮我解决我肯定给分啊!!!!要是能实现添加、删除等功能的话那就更好了。

解决方案 »

  1.   

    5555 怎么这么久了也没有人回阿   应该有很多人用过梅花雪树型控件的阿   麻烦知道的帮帮忙阿   我只需要一个简单的访问数据库的页面阿  而不是从XML文件读取的  或者把数据库里的数据转换成XML文件的程序也可以阿
      

  2.   

    给你个我做过的
    <%@ page contentType="text/html; charset=gb2312" language="java"%>
    <%@ include file="check.jsp"%>
    <link rel="stylesheet" href="css/style_1.css">
    <script type="text/javascript" src="js/MzTreeView10.js"></script>
    <script language="JavaScript" src="js/Right_shielding.js"></script>
    <script type="text/javascript">
    <!--
      var tree = new MzTreeView("tree");
      tree.setIconPath("TreeView/");
    <%    
          String xzqh_no=(String)session.getAttribute("XZQH_NO");
          String str_where="";
          //利用组合查询实现通过T_PUB_XZQH表的xzqh_no字段显示数据以达到快速定位
          if((xzqh_no.equals("all")) || (xzqh_no.equals(null))){
              str_where="";
          }else if(xzqh_no.equals("000000")){
              str_where = "";
          }else if(xzqh_no.substring(2).equals("0000")){
              str_where = "where XZQH_NO like '"+xzqh_no.substring(0,2)+"%' or xzqh_no like '000000'";
          }else if(xzqh_no.substring(4).equals("00")){
              str_where = "where XZQH_NO like '"+xzqh_no.substring(0,4)+"%' or XZQH_NO like '"+xzqh_no.substring(0,2)+"0000' or xzqh_no like '000000' ";
          }else{
              str_where = "where XZQH_NO='"+xzqh_no+"' or XZQH_NO like '"+xzqh_no.substring(0,4)+"00' or XZQH_NO like '"+xzqh_no.substring(0,2)+"0000' or xzqh_no like '000000'";
          }     
          String sql="";
          String TopMenuTitle="";
          sql = "select THIS_ID,PARE_ID,xzqh_name,xzqh_no from frsm.t_pub_xzqh  "+str_where+" order by XZQH_NO";
      TopMenuTitle="所有行政区划";        
    %>
    tree.nodes["0_1"] = "text:<%=TopMenuTitle%>;data:this_id=all;";
    <%

        sqlbean.executeQuery(sql);
    while(sqlbean.next()){
    %>  
    //父id,子id
    tree.nodes["<%=sqlbean.getData(2)%>_<%=sqlbean.getData(1)%>"] = "text:<%=sqlbean.getData(3)%>; data:xzqhno=<%=sqlbean.getData(4)%>";
    <%
    }
    %>
       tree.setURL("act_xzqh_area.jsp");
       tree.setTarget("pubmenu");//页面打开方式
      document.write(tree.toString());
    //-->
    </script>
      

  3.   

    谢谢楼上的,可是我是个菜鸟,不是看得明白你的代码,你那个xzqh_no指的是什么阿
      

  4.   

    下面的是我根据网上其他人的代码自己改写的,可是显示不出数据,麻烦大家帮我看看哪里出问题了,谢谢<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <script language="JavaScript"
      src="MzTreeView10.js"></script>
    <base href="http://www.meizz.com/Web/">
    <style>
    A.MzTreeview
    {
      font-size: 9pt;
      padding-left: 3px;
    }
    </style>
      <script language="JavaScript">
     var tree = new MzTreeView("tree");
    //tree.wordLine = false;  tree.icons["property"] = "property.gif";
      tree.icons["css"] = "collection.gif";
      tree.icons["book"]  = "book.gif";
      tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片  tree.setIconPath("http://www.meizz.com/Icons/TreeView/"); //可用相对路径 tree.nodes["0_1"] = "text:群成员(点击刷新); method:javascript:refurbish();";  <%
     String jdbcDriver="oracle.jdbc.driver.OracleDriver";//jdbc驱动
     String connectionString="jdbc:oracle:thin:@JENKIN:1521:jspdav";//数据库连接字符串
     String user="chenli";//数据库用户名
     String pass="chenl";//数据库密码
     Connection connection=null;
     //ResultSet rs=null;
      try {
         Class.forName(jdbcDriver);
           //一级
           //String id = WebContext.getCurrentUser().getName();
          String sql1 = "select id,name,parentId from tree";//数据库利用的字段名只包括了id,parentid,name
          connection=DriverManager.getConnection(connectionString,user,pass);       Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
           ResultSet rs = statement.executeQuery(sql1);
              //out.println(rs);
           int j = 100;
           int i = 10;
           int k = 1000;
           if (rs.next()) {
               rs.previous();
               while (rs.next()) {
                    out.println("tree.nodes[\"1_" + i + "\"] = \"text:" + rs.getString("name") + "\"");
                        //2级
                    String sql2 = "select id,name,parentId from tree  where parentId='" + rs.getString("id") + "'order by id desc";
                    Statement statement2 = connection.createStatement();
                    ResultSet rs2 = statement2.executeQuery(sql2);
                    if (rs2.next()) {
                          rs2.previous();
                          while (rs2.next()) {
                              out.println("tree.nodes[\"" + i + "_" + j + "\"] = \"text:" + rs2.getString("name") + "\"");
                                //3级
                              String sql3 = "select id,name,parentId from tree  where parentId='" + rs2.getString("id") + "'";
                              Statement statement3 = connection.createStatement();
                              ResultSet rs3 = statement3.executeQuery(sql3);
                              if (rs3.next()) {
                                  rs3.previous();
                                  while (rs3.next()) {
                                  out.println("tree.nodes[\"" + j + "_" + k + "\"] = \"text:" + rs3.getString("name") + "\"");
                                       k++;
                                             }                                     }
                                     j++;
                                      }
                              }
                                  i++;
                            }
                         }
       } catch (Exception e) {
                                }
     %>
        tree.setURL("Catalog.asp");
        tree.setTarget("basefrm");
        document.write(tree.toString());    //亦可用 obj.innerHTML = tree.toString();
        // tree.focus(1);
        //tree.expandAll();
        //tree.expand(1, true);
         </script>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <body>
    </body>
    </html>
           
      

  5.   

    你的代码好乱,看不懂。
    给你个我写的
    <%@page contentType="text/html; charset=GBK"%>
    <jsp:useBean id="t" class="tree.tree" scope="page"></jsp:useBean>
    <html>
    <head>
    <title>jsp10</title>
    </head>
    <style type="">
      A.MzTreeview
      {
      font-size: 9pt;
      padding-left: 3px;
      }
    </style>
    <script language="JavaScript" src="MzTreeView10.js" type=""></script>
    <script language="JavaScript" type="">
      var tree = new MzTreeView("tree");
      tree.icons["property"] = "property.gif";
      tree.icons["css"] = "collection.gif";
      tree.icons["book"]  = "book.gif";
      tree.iconsExpand["book"] = "bookopen.gif"; //展开时对应的图片
      tree.setIconPath("/WebModule1/IMG/"); //可用相对路径
      <%
      String tree = t.getTree();
      out.print(tree);
      %>
      document.write(tree.toString());    //亦可用 obj.innerHTML = tree.toString();
    </script>
    <body bgcolor="#ffffff">
    <input type=button value=展开所有节点 onclick="tree.expandAll()">
    <br/>
    </body>
    </html>
    下面是调用的Bean
    package tree;import java.sql.*;public class tree {
        public tree() {
        }    public String getTree() {
            Connection con = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            jdbc j = new jdbc();
            con = j.getcon();
            String sql = "select * from tree order by id";
            String tree = "";
            try {
                pstmt = con.prepareStatement(sql);
                rs = pstmt.executeQuery();
                while (rs.next()) {
                    String id = String.valueOf(rs.getInt("id"));
                    String pid = String.valueOf(rs.getInt("parent_id"));
                    String text = rs.getString("text");
                    tree += "\ntree.nodes[\"" + pid + "_" + id + "\"]=\"";
                    if (text != null && text.trim() != "") {
                        tree += "text:" + text + ";";
                    }
                    tree += "\"";
                }
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
            System.out.println(tree);
            return tree;
        }
    }
    数据库表字段是 id(自增)  parent_id   text