posts - 5, comments - 24, trackbacks - 0, articles - 20
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          使用Struts Menu構造動態(tài)樹 9

          Posted on 2007-04-27 17:43 kook 閱讀(488) 評論(0)  編輯  收藏 所屬分類: J2EE
          AppFuse的作者Raible為我們提供了Struts Menu這樣一個菜單組件,并且在AppFuse中使用它來進行了樹形菜單的顯示。不過AppFuse中做的是一個靜態(tài)菜單,下面我們利用這個組件來顯示一個使用數(shù)據(jù)庫管理的動態(tài)樹形菜單。
              原教程在http://www.thogau.net/tutorials/tree.html,偶滴工作只是寫一個“快速上手指南”。8過里面似乎還有點錯誤,反正偶照原樣做下來的用不了,修正一下。

          1. 創(chuàng)建POJO Node.java
              最基本也是最重要的工作首先是建立這個菜單的POJO,源文件在這里下載吧,偶8多說了。

          2. 使用AppGen生成代碼
              這一步偶也8想多說了,只要使用過AppFuse的都應該知道啦,8知道的看偶前面的文章

          3. 單元測試
              接下來當然就是要修改生成的代碼了,首先是單元測試類NodeDAOTest.java。我們要給它加幾個測試方法
              - testChildren:測試添加和刪除子節(jié)點
              - testParent:測試兩級的父子關系
              - testDeleteMiddleNode:測試中間節(jié)點的刪除
              具體怎么做的看這里吧,但是要注意最好不要直接下載替換原文件,如果AppFuse的版本不一樣,測試方法也是不一樣滴,最好把這幾個方法單獨copy過來。

          4. Form Bean
              AppGen生產(chǎn)的NodeForm不能滿足我們的要求了,所以把這個文件xdoclet-NodeForm.java放到metadata\web下。

          5. Action
              Action是這里最重要的類了,它修改的地方也很多,所以就直接下載吧。不過偶有一點不太明白的是作者為蝦米要把populate()方法的第二個參數(shù)設為long而不是Long,他傳入的可是Long啊,自己手動改改吧。

          6. JSP
              接下來是JSP,自動生成的代碼基本沒用了。這里nodeList.jsp可以刪除,nodeForm.jsp被重新寫過了。如果你的AppFuse版本比較新,是1.8版以上的,這個JSP下載下來后還需要改一下。搜索property="method",這個是button里的屬性,根據(jù)button的功能把他們分別修改成property="method.save"、property="method.delete"、property="method.add"等,否則按下按鈕可是要報錯的.
              修改了JSP也別忘了它的資源文件。把這個文件里關于nodeForm部分的內容copy到你自己的ApplicationResources下吧,當然可以漢化一下。
              接下來修改menuExpandable.cssmenuExpandable.js,直接替換原文件就可以了。
              現(xiàn)在可能還是不能正常使用,因為我們的AppFuse下已經(jīng)有一個菜單了,新的菜單會和原來的菜單起沖突,導致我們的新菜單打不開。到web\decorators下打開default.jsp文件,把含有<c:import url="/WEB-INF/pages/menu.jsp"/>的這一段代碼挪到<div id="content"></div>代碼段的下面,這樣就可以正常使用了。

          7. 問題
              在使用中我還發(fā)現(xiàn)一個問題,就是這個菜單的target有點問題,只有末節(jié)點的target有效,其它節(jié)點的target設了也滅有效果,8知道哪位大蝦有好的解決辦法,偶8勝感激。

          主站蜘蛛池模板: 云安县| 申扎县| 大连市| 怀集县| 临泉县| 眉山市| 甘谷县| 韩城市| 孝感市| 长葛市| 抚顺市| 镇原县| 灵山县| 亳州市| 霍林郭勒市| 宜丰县| 乐清市| 桃园县| 连州市| 肇源县| 平乡县| 巴东县| 辽宁省| 南城县| 嘉黎县| 隆化县| 中阳县| 南阳市| 建始县| 涪陵区| 湟源县| 佛教| 贡山| 嘉义市| 元江| 洛隆县| 唐河县| 应城市| 广德县| 刚察县| 南昌县|