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

          使用Struts Menu構造動態樹 9

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

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

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

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

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

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

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

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

          主站蜘蛛池模板: 新郑市| 肇州县| 岱山县| 贵溪市| 县级市| 吴桥县| 高碑店市| 柘荣县| 常州市| 鄄城县| 福建省| 安徽省| 繁峙县| 靖远县| 平塘县| 广宁县| 桦南县| 翼城县| 辰溪县| 丰原市| 遂溪县| 巴林右旗| 民丰县| 靖宇县| 防城港市| 同仁县| 无极县| 当涂县| 微山县| 新津县| 镇坪县| 宁武县| 浦城县| 瑞安市| 杭州市| 百色市| 文成县| 大同市| 封开县| 锡林浩特市| 曲沃县|