1. 程式人生 > >springmvc+mybatis 無極限樹形結構選單

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=[]}]}
]