2017/12/25
springmvc+mybatis 无极限树形结构菜单
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=[]}]}
- ]