springmvc+mybatis 無極限樹形結構選單
阿新 • • 發佈:2019-02-16
MYSQL資料庫
查出資料呼叫封裝類
List<Menu> menulist = new ArrayList<Menu>();
menulist = menuService.menuList();
MenuTree menuTree = new MenuTree();
System.out.println(menuTree.menuList(menulist));
樹形結構封裝類
package com.sdmc.util; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import com.sdmc.bean.Menu; public class MenuTree { public static Map<String,Object> mapArray = new LinkedHashMap<String, Object>(); public List<Menu> menuCommon; public List<Object> list = new ArrayList<Object>(); public List<Object> menuList(List<Menu> menu){ this.menuCommon = menu; for (Menu x : menu) { Map<String,Object> mapArr = new LinkedHashMap<String, Object>(); if(x.getPid()==0){ mapArr.put("id", x.getId()); mapArr.put("name", x.getName()); mapArr.put("level", x.getLevel()); mapArr.put("pid", x.getPid()); mapArr.put("child", menuChild(x.getId())); list.add(mapArr); } } return list; } public List<?> menuChild(int id){ List<Object> lists = new ArrayList<Object>(); for(Menu a:menuCommon){ Map<String,Object> childArray = new LinkedHashMap<String, Object>(); if(a.getPid() == id){ childArray.put("id", a.getId()); childArray.put("name", a.getName()); childArray.put("level", a.getLevel()); childArray.put("pid", a.getPid()); childArray.put("child", menuChild(a.getId())); lists.add(childArray); } } return lists; } }
結果
[{id=1, name=內容管理, level=1, pid=0, child=[{id=6, name=欄目管理, level=2, pid=1, child=[{id=17, name=管理內容, level=3, pid=6, child=[{id=11, name=業務管理, level=4, pid=17, child=[]}]}]}, {id=7, name=模型管理, level=2, pid=1, child=[]}]}, {id=2, name=使用者管理, level=1, pid=0, child=[{id=10, name=會員管理, level=2, pid=2, child=[]}]} ]