Shao Fan

          關(guān)于JAVA與軟件工程
          posts - 31, comments - 71, trackbacks - 0, articles - 4
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          用Javascript和JSP標簽在頁面動態(tài)生成樹

          Posted on 2006-02-26 18:47 shaofan 閱讀(5794) 評論(4)  編輯  收藏 所屬分類: Java
          主要分為以下四個部分:

          1、適合的客戶端腳本(用于顯示在HTML上,生成HTML代碼)
          2、標簽庫(用于生成JS的樹定義,當然也可以用JAVABEAN) --JSP頁面
          3、樹的數(shù)據(jù)結(jié)構(gòu)(類、接口,用于為標簽庫提供樹的數(shù)據(jù)結(jié)構(gòu),它是數(shù)據(jù)庫記錄和標簽庫的連接的紐帶)
          4、數(shù)據(jù)庫的記錄到樹對象的轉(zhuǎn)換
           
          下面是我的實現(xiàn):

          1、JS腳本使用TigraTree,這是一個免費的面向?qū)ο蟮臉淠_本,功能比較齊全,樹的定義簡單,易于標簽庫生成JS代碼
          比如,以下定義了一個樹:

           1 var TREE_ITEMS =
           2 [
           3  
           4 [ '方圓公司','www.fangyuan.com',
           5         [ '技術(shù)部','tech.fangyuan.com',
           6                 [ '救援隊','rescue.fangyuan.com'],
           7                 [ '上門服務(wù)隊','support.fangyuan.com']
           8         ],
           9         [ '市場部','market.fangyuan.com'],
          10         [ '辦公室','office.fangyuan.com',
          11                 [ '辦公室?guī)?,'wc.fangyuan.com'
          12                 ]
          13         ],
          14 ]
          15 ];

           
          然后使用以下代碼在頁面顯示樹:

          <script language="JavaScript">
                   
          new tree (TREE_ITEMS, TREE_TPL );
          </script>

           
          其中,TREE_ITEMS是樹的定義,TREE_TPL是對各個圖標的定義,可以根據(jù)需要更改
           
          2、編寫Tree標簽庫,該標簽庫從session/request中讀取一個實現(xiàn)了Tree接口的對象,遍歷該對象,來生成上面所示的js變量TREE_ITEMS,并寫到頁面上,同時也生成new tree(...)代碼,來顯示這棵樹。
          代碼就像這樣:

          <view:tree name="treDeps" selected="org_selectedNode"
              captionProperty
          ="DEP_NAME" href="actDepView.do"
              paramID
          ="id" paramProperty="DEP_ID"/>


          name是bean的名字,selected是表示當前選中的節(jié)點的bean,用來在刷新的時候能記住樹的狀態(tài)。
          樹由很多個節(jié)點組成,每個節(jié)點帶有一定的數(shù)據(jù),也就是說,一個節(jié)點會和一個對象綁定。

          captionProperty就是用來指定每個節(jié)點上的文字從綁定對象的哪個屬性上取。href表示節(jié)點的鏈接,paramID/paramProperty用來生成動態(tài)鏈接的參數(shù)。
           
          3、session/request中的tree對象是由業(yè)務(wù)方法從數(shù)據(jù)庫讀出并生成的。
           
          另外,利用上面講的基本原理,還可以實現(xiàn)很多功能。如各個節(jié)點可以定制使用不同的圖標,而不再依賴于節(jié)點的狀態(tài)來決定圖標,也可以增加復(fù)選框、單選框等。甚至可以在數(shù)據(jù)量很大的時候,每次只取某層的節(jié)點,然后在點擊某個節(jié)點旁的展開按鈕時,即時從數(shù)據(jù)庫取數(shù)據(jù)來顯示。具體的就只能以后再寫了。

          (轉(zhuǎn)移自 shaofan.blogbus.com )

          評論

          # re: 用Javascript和JSP標簽在頁面動態(tài)生成樹  回復(fù)  更多評論   

          2006-07-12 09:51 by flygoo
          有沒有例子

          # re: 用Javascript和JSP標簽在頁面動態(tài)生成樹  回復(fù)  更多評論   

          2006-08-12 09:47 by tuyuan
          能不能多貼點東西啊,這樣太不清楚了。
          從端到端的詳細的說明下
          期待中。。。。。。。。。

          # re: 用Javascript和JSP標簽在頁面動態(tài)生成樹  回復(fù)  更多評論   

          2006-08-16 19:38 by shaofan
          @tuyuan

          哪里不清楚呢?

          # re: 用Javascript和JSP標簽在頁面動態(tài)生成樹  回復(fù)  更多評論   

          2006-08-16 19:40 by shaofan
          最主要的部分是標簽庫,要用標簽庫來把要顯示的數(shù)據(jù)轉(zhuǎn)換成javascript所需要的形式,放到頁面上。然后JAVASCRIPT才能正確顯示出來。
          主站蜘蛛池模板: 万源市| 嫩江县| 顺昌县| 泰兴市| 平凉市| 萍乡市| 安庆市| 九龙坡区| 泽普县| 彝良县| 电白县| 上高县| 凌源市| 潞西市| 当涂县| 巴马| 马山县| 阳城县| 滨州市| 碌曲县| 新建县| 湟中县| 盘山县| 仁怀市| 宽城| 依兰县| 双峰县| 灵山县| 前郭尔| 顺义区| 望奎县| 济宁市| 利川市| 边坝县| 托克逊县| 余姚市| 大城县| 游戏| 武威市| 西充县| 醴陵市|