隨筆-48  評論-26  文章-0  trackbacks-0
          Dtree是個非常簡單易用的JS類庫,封裝了JS對樹型結構的一些復雜操作,其簡單易用的API能使新手順利的完成動態樹,下載地址為:http://destroydrop.com/javascripts/tree/
            本文結合Struts2.X,Spring2.0,Hibernate3.0整合使用,數據庫為簡單起見使用MySQL,表結構的設計是根據Dtree的結構來的,Dtree基本數據字段如下:
          id Number Unique identity number.
          pid Number Number refering to the parent node. The value for the root node has to be -1.
          name String Text label for the node.
          url String Url for the node.
          title String Title for the node.
          target String Target for the node.
          icon String Image file to use as the icon. Uses default if not specified.
          iconOpen String Image file to use as the open icon. Uses default if not specified.
          open Boolean Is the node open.

          SQL腳本如下:
          create database exercise;
          use database exercise;
          create table dtreedemo01(
             id 
          varchar(50primary key,
             pid 
          varchar(50),
             name 
          varchar(50),
             url  
          varchar(50),
             title 
          varchar(50),
             target 
          varchar(50),
             icon 
          varchar(50),
             iconopen 
          varchar(50),
             opened 
          varchar(50)
          );


          insert into dtreedemo01 values('0','-1','Root','javascript: void(0);',null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('00','0','音樂','javascript: void(0);',null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0001','00','輕金屬',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0002','00','重金屬',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0003','00','R&B',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('01','0','體育','javascript: void(0);',null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0101','01','籃球',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0102','01','足球',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0103','01','體操',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('02','0','美食','javascript: void(0);',null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0201','02','中國菜',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('020101','0201','青椒找肉',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0202','02','日本菜',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('020201','0202','河夫烤魚',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('0203','02','法國菜',null,null,null,NULL,NULL,NULL);
          insert into dtreedemo01 values('020301','0203','爆炒蝸牛',null,null,null,NULL,NULL,NULL);

          接下來就是三個框架的整合了,因為此文只是介紹一下Dtree的使用,所以整合的細節就不說了,直接看展示頁面的代碼.
          <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
          <%@taglib prefix="s" uri="/struts-tags"%>
          <html>
              
          <head>
                  
          <title>DynaTreeDemo</title>
                  
          <link rel="StyleSheet" href="css/dtree.css" type="text/css" />
                  
          <script type="text/javascript" src="js/dtree.js"></script>
              
          </head>
              
          <body>
                  
          <table width="180">
                      
          <tr>
                          
          <td height="300" valign="top">
                              
                              
          <script type="text/javascript">
                                      tree 
          = new dTree('tree');
                                  tree.config.folderLinks
          =false;
                                  tree.config.useCookies
          =false;
                                   
          <s:iterator value="#request.treeList">
                                  tree.add(
          "<s:property  value="id"/>",
                                      
          "<s:property  value="pid" />",
                                      
          "<s:property  value="name" />",
                                      
          "<s:property  value="url" />",
                                      
          "<s:property  value="title" />",
                                      
          "<s:property  value="targer" />",
                                      
          "<s:property  value="icon" />");
                                   
          </s:iterator>
                                    document.write(tree);    
                                  
          </script>

                          
          </td>
                      
          </tr>
                  
          </table>
              
          </body>
          </html>
          上文中的treeList為在后端控制器獲取到的數據,在JSP頁面中使用Struts2標簽迭代集合實現javascript與S2的交互。
          這種實現方法的一個缺點是,當有大量的數據時也是一次性查詢出來傳遞到Dtree封裝好的遞歸方法中,影響效率.
          去除了S2SH的Jar,下載地址:http://www.aygfsteel.com/Files/Mars/dtreedemo.rar
          posted on 2009-09-26 15:17 Worker 閱讀(329) 評論(0)  編輯  收藏 所屬分類: Web

          主站蜘蛛池模板: 定安县| 股票| 阳高县| 镇赉县| 阜南县| 抚宁县| 乌兰县| 河北省| 子长县| 武胜县| 龙岩市| 福鼎市| 金阳县| 灌南县| 额敏县| 宁化县| 玉溪市| 正蓝旗| 菏泽市| 南江县| 教育| 成武县| 张掖市| 读书| 龙井市| 临邑县| 万安县| 镇远县| 沅江市| 龙里县| 嘉禾县| 聊城市| 寿光市| 绥宁县| 远安县| 海盐县| 曲阳县| 资源县| 固镇县| 鄂伦春自治旗| 天全县|