原教程在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.css和menuExpandable.js,直接替換原文件就可以了。
現在可能還是不能正常使用,因為我們的AppFuse下已經有一個菜單了,新的菜單會和原來的菜單起沖突,導致我們的新菜單打不開。到web\decorators下打開default.jsp文件,把含有<c:import url="/WEB-INF/pages/menu.jsp"/>的這一段代碼挪到<div id="content"></div>代碼段的下面,這樣就可以正常使用了。
7. 問題
在使用中我還發現一個問題,就是這個菜單的target有點問題,只有末節點的target有效,其它節點的target設了也滅有效果,8知道哪位大蝦有好的解決辦法,偶8勝感激。