簡易代碼之家

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            157 Posts :: 2 Stories :: 57 Comments :: 0 Trackbacks

          從http://www.destroydrop.com/javascripts/tree/下載dtree.zip壓縮包,解壓后我們會用到dtree.js、dtree.css和img文件夾。

          1.TreeInfo.java

          package com.yxx;

          public class TreeInfo {
              
          private int nodeId = -1;
              
          private int parentId = -1;
              
          private String nodeName = null;
              
          private String url = null;
              
          private String target = null;

              
          public int getNodeId() {
                  
          return nodeId;
              }


              
          public void setNodeId(int nodeId) {
                  
          this.nodeId = nodeId;
              }


              
          public int getParentId() {
                  
          return parentId;
              }


              
          public void setParentId(int parentId) {
                  
          this.parentId = parentId;
              }


              
          public String getNodeName() {
                  
          return nodeName;
              }


              
          public void setNodeName(String nodeName) {
                  
          this.nodeName = nodeName;
              }


              
          public String getUrl() {
                  
          return url;
              }


              
          public void setUrl(String url) {
                  
          this.url = url;
              }


              
          public String getTarget() {
                  
          return target;
              }


              
          public void setTarget(String target) {
                  
          this.target = target;
              }


          }


          2.TreeUtil.java

          package com.yxx;

          import java.sql.Connection;
          import java.sql.DriverManager;
          import java.sql.PreparedStatement;
          import java.sql.ResultSet;
          import java.util.ArrayList;
          import java.util.List;

          public class TreeUtil {

              
          /**
               * @從數據庫中讀取tree的信息
               * 
          @return
               
          */

              
          public static List<TreeInfo> retrieveNodeInfos() {
                  List
          <TreeInfo> treeInfoList = new ArrayList<TreeInfo>();
                  String driverName 
          = "com.mysql.jdbc.Driver";
                  String url 
          = "jdbc:mysql://localhost:3306/test";

                  Connection connection 
          = null;
                  PreparedStatement preparedStatement 
          = null;
                  ResultSet rs 
          = null;
                  
          try {
                      Class.forName(driverName).newInstance();
                      connection 
          = DriverManager.getConnection(url, "root""1234");
                      String sql 
          = "select * from tree_info";
                      preparedStatement 
          = connection.prepareStatement(sql);
                      rs 
          = preparedStatement.executeQuery();

                      TreeInfo treeInfo 
          = null;
                      
          while (rs != null && rs.next()) {
                          treeInfo 
          = new TreeInfo();
                          treeInfo.setNodeId(rs.getInt(
          1));
                          treeInfo.setParentId(rs.getInt(
          2));
                          treeInfo.setNodeName(rs.getString(
          3));
                          treeInfo.setUrl(rs.getString(
          4));
                          treeInfoList.add(treeInfo);
                      }

                  }
           catch (Exception e) {
                      System.out.println(e);
                  }


                  
          return treeInfoList;
              }


              
          /**
               * @生成創建tree的腳本
               * 
          @param treeInfoList
               * 
          @return
               
          */

              
          public static String createTreeInfo(List<TreeInfo> treeInfoList) {
                  StringBuffer contents 
          = new StringBuffer();
                  contents.append(
          "<script type='text/javascript'>\n");
                  contents.append(
          "d = new dTree('d');\n");

                  TreeInfo treeInfo 
          = null;
                  
          for (int i = 0; i < treeInfoList.size(); i++{
                      treeInfo 
          = (TreeInfo) treeInfoList.get(i);
                      contents.append(createOneItem(treeInfo));
                  }


                  contents.append(
          "document.write(d);");
                  contents.append(
          "\n</script>");
                  
          return contents.toString();
              }


              
          /**
               * @生成創建一個條目的腳本
               * 
          @param treeInfo
               * 
          @return
               
          */

              
          public static String createOneItem(TreeInfo treeInfo) {
                  StringBuffer item 
          = new StringBuffer();
                  item.append(
          "d.add(");
                  
          // 第一個參數,表示當前節點的ID
                  item.append(treeInfo.getNodeId() + ",");
                  
          // 第二個參數,表示當前節點的父節點的ID,根節點的值為 -1
                  item.append(treeInfo.getParentId() + ",");
                  
          // 第三個參數,節點要顯示的文字
                  item.append("'" + treeInfo.getNodeName() + "',");
                  
          // 第四個參數,節點的Url
                  item.append("'" + treeInfo.getUrl() + "',");
                  
          // 第五個參數,鼠標移至該節點時節點的Title
                  item.append("'" + treeInfo.getNodeName() + "',");
                  
          // 第六個參數,節點的target
                  item.append("'blank',");
                  
          // 第七個參數,用做節點的圖標,節點沒有指定圖標時使用默認值
                  item.append("'',");
                  
          // 第八個參數,用做節點打開的圖標,節點沒有指定圖標時使用默認值
                  item.append("'',");
                  
          // 第九個參數,判斷節點是否打開
                  item.append(false);

                  item.append(
          ");\n");
                  
          return item.toString();
              }


              
          /**
               * @取得腳本
               * 
          @return
               
          */

              
          public String getMenuJS() {
                  String js 
          = "";
                  List
          <TreeInfo> treeInfoList = TreeUtil.retrieveNodeInfos();
                  js 
          = TreeUtil.createTreeInfo(treeInfoList);
                  
          return js;
              }


              
          /**
               * @測試生成的JS
               * 
          @param args
               
          */

              
          public static void main(String[] args) {
                  List
          <TreeInfo> treeInfoList = TreeUtil.retrieveNodeInfos();
                  System.out.println(TreeUtil.createTreeInfo(treeInfoList));
              }

          }


          3.index.jsp

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <jsp:useBean id="treeUtil" scope="request" class="com.yxx.TreeUtil" />
          <html>
              
          <head>
                  
          <title>Tree</title>
                  
          <link rel="StyleSheet" href="dtree.css" type="text/css" />
                  
          <script type="text/javascript" src="dtree.js"></script>
              
          </head>
              
          <body>
                  
          <div class='dtree'>
                      
          <%=treeUtil.getMenuJS()%>
                  
          </div>
              
          </body>
          </html>
          posted on 2009-04-29 10:05 Jakin.zhou 閱讀(1742) 評論(1)  編輯  收藏

          Feedback

          # re: dtree樹形菜單簡例 2009-04-29 13:06 HiMagic!
          看到在java里代碼塞js語句的就看不下去了,換換思路吧。  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 太仆寺旗| 重庆市| 甘孜| 苍梧县| 朝阳区| 九江市| 杂多县| 博客| 五大连池市| 临泉县| 紫金县| 寻乌县| 商水县| 旬阳县| 荆州市| 碌曲县| 滨海县| 英山县| 乳山市| 高州市| 长岛县| 海林市| 汉沽区| 卓尼县| 商水县| 修水县| 堆龙德庆县| 丽江市| 晋中市| 昆明市| 伊金霍洛旗| 南投县| 宁阳县| 正宁县| 淮北市| 廉江市| 广汉市| 平利县| 阿克| 宣化县| 额尔古纳市|