最靠譜的java遞迴樹形菜單顯示

來源:互聯網
上載者:User

標籤: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遞迴樹形菜單顯示

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.