<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    dtree是一個(gè)免費(fèi)的javascript腳本,只需定義有限的幾個(gè)參數(shù),就可以做出漂亮的樹型菜單。下載目錄:http://www.destroydrop.com/javascripts/tree/
     以下是dtree的用法示例:
     1)初始化菜單
     <script type="text/javascript">
      <!--
      var Tree = new Array;
      // nodeId | parentNodeId | nodeName | nodeUrl
      Tree[0]  = "1|0|Page 1|#";
      Tree[1]  = "2|1|Page 1.1|#";
      Tree[2]  = "3|1|Page 1.2|#";
      Tree[3]  = "4|3|Page 1.2.1|#";
      Tree[4]  = "5|1|Page 1.3|#";
      Tree[5]  = "6|2|Page 1.1.1|#";
      Tree[6]  = "7|6|Page 1.1.1.1|#";
      Tree[7]  = "8|6|Page 1.1.1.2|#";
      Tree[8]  = "9|1|Page 1.4|#";
      Tree[9]  = "10|9|Page 1.4.1|#";
      Tree[10] = "11|0|Page 2|#";
      //-->
     </script>
     2)調(diào)用函數(shù)
     <div class="tree">
      <script type="text/javascript">
      <!--
       createTree(Tree,1,7);  // starts the tree at the top and open it at node nr. 7
      //-->
      </script>
     </div>
     
    2。jsp動(dòng)態(tài)實(shí)現(xiàn)
       分以下步驟實(shí)現(xiàn)動(dòng)態(tài)的樹型菜單:
       1)在數(shù)據(jù)庫建tree_info表,有nodeId,parentNodeId,nodeName,nodeUrl四個(gè)字段,來存儲(chǔ)節(jié)點(diǎn)信息。
       2)編寫java類,用于從數(shù)據(jù)庫找出節(jié)點(diǎn)信息,并且生成javascript腳本。
       3)編寫tag類。用于封裝邏輯,簡化jsp的開發(fā)。
       4)建一個(gè)web程序進(jìn)行測試。
    3。詳細(xì)過程
       1)在數(shù)據(jù)庫建表,腳本如下:
       CREATE TABLE `test`.`tree_info` (
       `node_id` INTEGER UNSIGNED NOT NULL DEFAULT -1,
       `parent_id` INTEGER UNSIGNED NOT NULL DEFAULT -1,
       `node_name` VARCHAR(45) NOT NULL,
       `ref_url` VARCHAR(45) NOT NULL,
       PRIMARY KEY(`node_id`)
     )
     我使用mysql數(shù)據(jù)庫,如果腳本細(xì)節(jié)有出入,請(qǐng)自行修改
        按照上面的dTree示例插入數(shù)據(jù)
       2)編寫TreeInfo.java,這個(gè)類用于封裝節(jié)點(diǎn)信息
         package com.diegoyun.web.tree;
      /**
       * @author Diegoyun
       * @version 1.0
       */
      public class TreeInfo {
       private int nodeId = -1;//node id
       private int parentId = -1;//parentId
       private String nodeName = null;//node name
       private String url = null;//url references
       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;
       }
      }
       編寫TreeUtil.java,用于從數(shù)據(jù)庫得到節(jié)點(diǎn)信息,封裝到TreeInfo對(duì)象,并生成javascript腳本
       TreeUtil.java
       package com.diegoyun.web.tree;
      import java.util.Collection;
      import java.util.ArrayList;
      import java.util.Iterator;
      import java.util.List;
      import java.sql.PreparedStatement;
      import java.sql.ResultSet;
      import java.sql.Connection;
      import java.sql.DriverManager;
      /**
       * @author Diegoyun
       * @version 1.0
       */
      public class TreeUtil {
       public static List retrieveNodeInfos(){
        List coll = new ArrayList();
        String driverName = "com.mysql.jdbc.Driver";
        String host = "localhost";
        String port = ":3306";
        String serverID = "test";
        String userName = "root";
        String userPwd = "root";
        String url = "jdbc:mysql://" + host + port + "/" + serverID ;
        Connection conn = null ;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try{
         Class.forName(driverName).newInstance();
         conn = DriverManager.getConnection(url , userName , userPwd);
         String sql = "select * from tree_info";
         ps = conn.prepareStatement(sql);
         rs = ps.executeQuery();
         TreeInfo info = null;
         while(rs!=null && rs.next()){
          info = new TreeInfo();
          info.setNodeId(rs.getInt(1));
          info.setParentId(rs.getInt(2));
          info.setNodeName(rs.getString(3));
          info.setUrl(rs.getString(4));
          coll.add(info);
         }
      //            if(rs!=null){
      //                rs.close();
      //                rs=null;
      //            }
      //            if(ps!=null){
      //                ps.close();
      //                ps=null;
      //            }
        }catch(Exception e){
         System.out.println(e);
        }

        return coll;
       }
       public static String createTreeInfo(List alist){
        StringBuffer contents = new StringBuffer();
        contents.append("<!--\n");
        contents.append("var Tree = new Array;");//create a array in javascript
        TreeInfo info =null;
        for(int max = alist.size(),i=0;i<max;i++){
         info = (TreeInfo)alist.get(i);
         //define elements of array
         contents.append("Tree[");
         contents.append(i);
         contents.append("]=\"");
         contents.append(info.getNodeId());
         contents.append("|");
         contents.append(info.getParentId());
         contents.append("|");
         contents.append(info.getNodeName());
         contents.append("|");
         contents.append(info.getUrl());
         contents.append("\";");
        }
        contents.append("http://-->");
        return contents.toString();
       }
       public static void main(String[]args){
        List alist = TreeUtil.retrieveNodeInfos();
      //        TreeInfo info = null;
      //        for(Iterator i = c.iterator();i.hasNext();){
      //            info = (TreeInfo)i.next();
      //            System.out.println("*****" + info.getNodeName());
      //        }
        System.out.println(TreeUtil.createTreeInfo(alist));
       }
      }
     3)編寫標(biāo)簽類
     InitTreeTag.java
     package com.diegoyun.web.taglibs;
     import com.diegoyun.web.tree.TreeUtil;
     import javax.servlet.jsp.tagext.TagSupport;
     import javax.servlet.jsp.JspException;
     import java.io.IOException;
     /**
      * @author Diegoyun
      * @version 1.0
      */
     public class InitTreeTag extends TagSupport{
      public int doEndTag() throws JspException {
       StringBuffer tree = new StringBuffer();
       tree.append("<script type=\"text/javascript\">\n");
       tree.append(TreeUtil.createTreeInfo(TreeUtil.retrieveNodeInfos()));
       tree.append("</script>\n");
       try{
        pageContext.getOut().println(tree.toString());
       }catch(IOException ioe){
        ioe.printStackTrace();
       }
       return super.doEndTag();
      }
     }
     ShowTreeTag.java : 
     package com.diegoyun.web.taglibs;
     import javax.servlet.jsp.tagext.TagSupport;
     import javax.servlet.jsp.JspException;
     import java.io.IOException;
     /**
      * @author Diegoyun
      * @version 1.0
      */
     public class ShowTreeTag extends TagSupport{
      public int doEndTag() throws JspException {
       StringBuffer buffer = showTree();
       try {
        pageContext.getOut().println(buffer.toString());
       }
       catch (IOException ioe) {
        ioe.printStackTrace();
       }
       return super.doEndTag();
      }
      private StringBuffer showTree(){
       StringBuffer sb = new StringBuffer();
       sb.append("<div class=\"tree\">\n");
       sb.append("<script type=\"text/javascript\">\n");
       sb.append("<!--\n");
       sb.append("createTree(Tree,1,7);\n");
       sb.append("http://-->\n");
       sb.append("</script>\n");
       sb.append("</div>\n");
       return sb;
      }   
     }
     標(biāo)簽的tld如下:
     <?xml version="1.0" encoding="ISO-8859-1" ?>
     <!DOCTYPE taglib
       PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
       "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
     <taglib>
      <tlib-version>1.0</tlib-version>
      <jsp-version>1.2</jsp-version>
      <short-name>tree</short-name>
      <!--initTreeTag-->
      <tag>
       <name>init</name>
       <tag-class>com.diegoyun.web.taglibs.InitTreeTag</tag-class>
       <body-content>empty</body-content>
      </tag>
      <!--ShowTreeTag-->
      <tag>
       <name>show</name>
       <tag-class>com.diegoyun.web.taglibs.ShowTreeTag</tag-class>
       <body-content>empty</body-content>
      </tag>
     </taglib>
     4)建立web過程,編寫jsp進(jìn)行測試。
     index.jsp如下:
     <%@ page language="java"%>
     <%@ taglib uri="/WEB-INF/tlds/tree.tld" prefix="tree"%>

     <html>
     <head>
      <title>Tree example</title>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <link rel="StyleSheet" href="tree.css" type="text/css">
      <script type="text/javascript" src="tree.js"></script>
      <tree:init/>
     </head>
     <body>

     <b>Tree example :</b><br /><br />
     <tree:show/>
     <br /><br />
     
     </body>
     </html>
    posted on 2007-09-30 09:48 蘆葦 閱讀(3512) 評(píng)論(6)  編輯  收藏 所屬分類: HTML & Script

    Feedback

    # re: 使用dtree構(gòu)建動(dòng)態(tài)樹型菜單 2008-09-25 12:41 SS
    完全綠春不對(duì)馬嘴,轉(zhuǎn)帖吧,沒測試過吧  回復(fù)  更多評(píng)論
      

    # re: 使用dtree構(gòu)建動(dòng)態(tài)樹型菜單 2008-10-10 11:21 蘆葦
    @SS

    的確是轉(zhuǎn)貼的,沒看到最下面的說明嗎?這是我的收藏,覺得沒用就請(qǐng)你離開  回復(fù)  更多評(píng)論
      

    # re: 使用dtree構(gòu)建動(dòng)態(tài)樹型菜單 [未登錄] 2009-07-02 11:42 a
    根本就不行  回復(fù)  更多評(píng)論
      

    # re: 使用dtree構(gòu)建動(dòng)態(tài)樹型菜單 [未登錄] 2010-01-20 11:08 billy
    還有這種不要臉的人專門收集別人的垃圾文章騙人。  回復(fù)  更多評(píng)論
      

    # re: 使用dtree構(gòu)建動(dòng)態(tài)樹型菜單 2010-02-23 11:32 蘆葦
    我知道這些代碼是有問題的,而且也是我轉(zhuǎn)別人的文章,但是我使用的時(shí)候就是參考這個(gè)弄出來的,一個(gè)正常的代碼,你拷貝過去完全正常使用,你還能學(xué)到什么?只有出錯(cuò)了,你自己解決了,你才學(xué)到了東西.
    另外:這里是我的私人博客,是我收集一些資料的地方,沒有你想要的東西很正常啊,請(qǐng)不要出口傷人!
      回復(fù)  更多評(píng)論
      

    # <tree:init/>語句沒有執(zhí)行 2010-02-28 12:02 garyme
    請(qǐng)問<tree:init/>語句沒有執(zhí)行,而<tree:show/>正常,該怎么解決?謝謝  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 在线观看亚洲免费视频| 亚洲人成7777| 国产在线观看免费av站| 四虎永久免费地址在线观看| 亚洲av无码成人影院一区 | 中文在线观看国语高清免费| 免费成人av电影| 一级一片免费视频播放| 国产亚洲视频在线观看| 尤物永久免费AV无码网站| 久久久亚洲精华液精华液精华液| 日韩一级视频免费观看| 男女超爽视频免费播放| 亚洲av中文无码| 中文精品人人永久免费| 亚洲Av综合色区无码专区桃色| 91福利免费体验区观看区| 91亚洲自偷在线观看国产馆| 岛国av无码免费无禁网站| 曰批全过程免费视频免费看| 久久精品夜色噜噜亚洲A∨| 国产午夜免费高清久久影院| 亚洲黄色在线电影| 成人免费在线观看网站| 精品特级一级毛片免费观看| 国产亚洲精品a在线观看| 久久综合给合久久国产免费| 亚洲一区二区三区深夜天堂 | 精品国产污污免费网站入口在线| 亚洲国产精品无码专区在线观看| 美女一级毛片免费观看| 亚洲色大成网站www永久一区| 久久精品视频免费播放| 亚洲а∨天堂久久精品9966| 免费观看国产精品| 免费观看91视频| 日韩亚洲人成网站| 精品亚洲成a人片在线观看| 天天摸夜夜摸成人免费视频| 91视频免费网站| 亚洲综合小说另类图片动图|