web 項目或多或少都會有涉及到什麼人員職稱樹,菜單樹,組織機構樹等。
曆手三四個項目有大有小,采用的樹前端都是 Ztree。
有些優秀的J2EE 架構将這些常用的元件都封裝起來,作為子產品化的元件提供給前端,這樣固然是好,開發效率會提升幾倍。
客戶需求是什麼,元件化往上一套,幾分鐘就能搭建起來。
但這樣程式員真的就是搬磚的了,純純的重複性工作。
ZTree v3.0 将核心代碼按照功能進行了分割,不需要的代碼可以不用加載
采用了 延遲加載 技術,上萬節點輕松加載,即使在 IE6 下也能基本做到秒殺
相容 IE、FireFox、Chrome、Opera、Safari 等浏覽器
支援 JSON 資料
支援靜态 和 Ajax 異步加載節點資料
支援任意更換皮膚 / 自定義圖示(依靠css)
支援極其靈活的 checkbox 或 radio 選擇功能
提供多種事件響應回調
靈活的編輯(增/删/改/查)功能,可随意拖拽節點,還可以多節點拖拽喲
在一個頁面内可同時生成多個 Tree 執行個體
簡單的參數配置實作 靈活多變的功能
具體使用架構不同,前端通信請求寫法可能會有差距,但無論使用什麼樣的MVC 架構,怎樣封裝/變化,個人認為前端到後端通信方式大緻為 Ajax/Websocket。
首先頁面需要引入JS,ZTree 依賴 JQuery,是以 JQuery 寫到前面位置。


最後将後端組織好的 Json 資料初始化入ZTree 即可,具體的 ZTree 使用,比如顯示的樣式,拖拽,點選事件的響應........都是支援的,看具體需求來實作。
前端的各種樣式事件響應需要一顆細膩的心,如果你們公司前後端是嚴格分工開發的,你完全可以交給前端MM了,專注後端設計。
下面都為個人了解設計,如看客老爺有更好方式,請斧正。
首先你得需要一個像 Ztree 樹節點屬性類似的資料結構 POJO(setter,getter 方法已省略)。
其中隻對幾個常用的屬性進行了定義,友善其他人使用,降低業務代碼之間的耦合性。


其次你需要一張具有上下級關系的資料表,下面這是自己的測試腳本。
SQL 無國界,盡管拿去練手吧。


當然對于業務 POJO 的資料結構封裝比不可少,主流的持久層架構都能将表映射為 POJO 對象,有自動生成業務接口,服務層。
不用那些看起來難懂的書面話, 個人了解 POJO 的作用,将現實業務抽象到程式表現層。
最後是核心的業務處理邏輯,通過持久層擷取想要周遊的資料,進行處理封裝。


需要注意的地方是最後在 ZTreeNodeList 頭部添加的 treeNode 為樹元件的頭部,這裡需要将資料表中的一級菜單的 parentid 設定為 -1。
最終界面展示
本文轉自Orson部落格園部落格,原文連結:http://www.cnblogs.com/java-class/p/5202086.html,如需轉載請自行聯系原作者