隨筆-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 閱讀(336) 評論(0)  編輯  收藏 所屬分類: Web

          主站蜘蛛池模板: 霞浦县| 内乡县| 赤城县| 张北县| 耿马| 莱芜市| 城步| 黑水县| 那曲县| 凉山| 东光县| 土默特左旗| 巴楚县| 泰州市| 新龙县| 邛崃市| 从江县| 扶沟县| 瓮安县| 惠水县| 台江县| 屏南县| 法库县| 二连浩特市| 南通市| 贵德县| 和田县| 崇仁县| 陈巴尔虎旗| 北川| 夹江县| 右玉县| 上杭县| 浦县| 固原市| 寿宁县| 巫山县| 基隆市| 西乌珠穆沁旗| 黄大仙区| 鹤岗市|