標籤:java font log blog ima 擷取 遍曆 實體 alt
今天寫入權限整好涉及到一些菜單的顯示,最先想到的是遞迴遍曆輸出,但是呢在網上找了很多有關的資料沒有符合自己需求的所以就自己寫了一個,如果覺得靠譜
請點點關注!!!贊一個
首先看一些設計的資料庫設計
菜單的id menuId
菜單的名稱 menuName
菜單的地址 url
菜單的父層級 parent
菜單的編碼 menuCode
比較簡單的設計:
閑話不多說直接上代碼
實體類 如下:
此處省略 GET ()SET()方法
注意:
這裡多了個 childrs集合 因為我們要進行遞迴遍曆 把每個菜單的子項目都顯示出來 根據自己的需求選好集合我用的是List如果你希望唯一就用set集合
這裡採用List
接下來我們來看遞迴部分如下:
簡單的幾行代碼就完成的遞迴的遍曆所有菜單的 每個菜單又會攜帶自己的子子孫孫菜單的 這樣的結果是你想到要的嗎????
接下來我們來解釋一下這些代碼的意義
menuMapper.conditionleveMenu(menu.getMenuId());
第一次進來,擷取的是當前的一級元素
然後把一級元素放入我當前菜單的子項目中
因為:我的子項目的下面很有可能還有子項目 所以我又把上面的集合元素迴圈的進行的遍曆
for(Menu men : list){
然後這裡採用的是遞迴的演算法 recursion(menu)傳入當前的菜單
}
這個方法主要做了幾件事
1查詢當前菜單下面的所有子項目菜單
2如果有子項目菜單 添加到當前菜單的子項目集合中
添加完畢 我們要考慮的是萬一子項目集合下面還有菜單元素怎麼辦
所以進行了遍曆
3迴圈遍曆子項目集合進行重複操作 放入菜單 然後進入方法
1查詢當前菜單下面的所有子項目
2如果有子項目菜單 添加到當期那菜單的子項目集合中
3迴圈遍曆子項目集合進行進行重複操作.......同上
直到迴圈完畢
主要代碼 就是這些 最重要的是實現了這個功能 細節留給你們開闊大腦去想把!!嘿嘿 關於本文有什麼問題可以在下面留言交流,如果您覺得本文對您有協助,可以點擊下面的 推薦 支援一下我,部落格一直在更新,歡迎 關注 。
最靠譜的java遞迴樹形菜單顯示