zoukankan      html  css  js  c++  java
  • 构建菜单树

    一直以来没工夫仔细琢磨菜单树怎么做,只知道递归,现在才有空闲实现一次。

    数据结构:

    调用部分的代码,浏览器地址为:http://127.0.0.1:8080/admin/resource/menu?userId=23123

    buildTree的代码:

    	public JSONArray buildTree(List<Resource> resListAll, List<Resource> iteratedList, int parentId) {
    		JSONArray arr = new JSONArray();
    
    		for (Resource resource : resListAll) {
    			if (iteratedList.contains(resource)) {
    				continue;
    			}
    
    			if (resource.getParentId() == parentId) {
    				iteratedList.add(resource);
    				String text = JSONObject.toJSONString(resource);
    				JSONObject res = JSONObject.parseObject(text);
    				arr.add(res);
    				res.put("children", buildTree(resListAll, iteratedList, resource.getId()));
    			}
    		}
    		return arr;
    	}
    

      

    结果:

    {
    	"resourceTree": [{
    		"resourceRemark": "",
    		"resourceContent": "",
    		"orderNum": 0,
    		"resourceDescription": "",
    		"resourceName": "采购管理",
    		"parentId": 0,
    		"resourceStatus": "disabled",
    		"depth": 0,
    		"resourceUrl": "",
    		"createTime": 1544149306000,
    		"children": [{
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "非日常采购",
    			"parentId": 5,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 23,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "日常采购管理",
    			"parentId": 5,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 22,
    			"resourceType": "menu"
    		}],
    		"id": 5,
    		"resourceType": "menu"
    	}, {
    		"resourceRemark": "",
    		"resourceContent": "",
    		"orderNum": 0,
    		"resourceDescription": "",
    		"resourceName": "场地管理",
    		"parentId": 0,
    		"resourceStatus": "disabled",
    		"depth": 0,
    		"resourceUrl": "",
    		"createTime": 1544148935000,
    		"children": [{
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "合作酒店场地管理",
    			"parentId": 4,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 21,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "会议室场地管理",
    			"parentId": 4,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 20,
    			"resourceType": "menu"
    		}],
    		"id": 4,
    		"resourceType": "menu"
    	}, {
    		"resourceRemark": "",
    		"resourceContent": "",
    		"orderNum": 0,
    		"resourceDescription": "",
    		"resourceName": "支出管理",
    		"parentId": 0,
    		"resourceStatus": "disabled",
    		"depth": 0,
    		"resourceUrl": "",
    		"createTime": 1544148987000,
    		"children": [{
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "投标支出管理",
    			"parentId": 3,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [{
    				"resourceRemark": "",
    				"resourceContent": "",
    				"orderNum": 0,
    				"resourceDescription": "",
    				"resourceName": "星际投标",
    				"parentId": 19,
    				"resourceStatus": "disabled",
    				"depth": 0,
    				"resourceUrl": "",
    				"createTime": 1544444261000,
    				"children": [{
    					"resourceRemark": "",
    					"resourceContent": "",
    					"orderNum": 0,
    					"resourceDescription": "",
    					"resourceName": "仙女星云投标",
    					"parentId": 30,
    					"resourceStatus": "disabled",
    					"depth": 0,
    					"resourceUrl": "",
    					"createTime": 1544443215000,
    					"children": [],
    					"id": 33,
    					"resourceType": "menu"
    				}, {
    					"resourceRemark": "",
    					"resourceContent": "",
    					"orderNum": 0,
    					"resourceDescription": "",
    					"resourceName": "银河系投标",
    					"parentId": 30,
    					"resourceStatus": "disabled",
    					"depth": 0,
    					"resourceUrl": "",
    					"createTime": 1544443211000,
    					"children": [],
    					"id": 32,
    					"resourceType": "menu"
    				}],
    				"id": 30,
    				"resourceType": "menu"
    			}, {
    				"resourceRemark": "",
    				"resourceContent": "",
    				"orderNum": 0,
    				"resourceDescription": "",
    				"resourceName": "国际投标",
    				"parentId": 19,
    				"resourceStatus": "disabled",
    				"depth": 0,
    				"resourceUrl": "",
    				"createTime": 1544444261000,
    				"children": [],
    				"id": 29,
    				"resourceType": "menu"
    			}, {
    				"resourceRemark": "",
    				"resourceContent": "",
    				"orderNum": 0,
    				"resourceDescription": "",
    				"resourceName": "国内投标",
    				"parentId": 19,
    				"resourceStatus": "disabled",
    				"depth": 0,
    				"resourceUrl": "",
    				"createTime": 1544444261000,
    				"children": [],
    				"id": 28,
    				"resourceType": "menu"
    			}, {
    				"resourceRemark": "",
    				"resourceContent": "",
    				"orderNum": 0,
    				"resourceDescription": "",
    				"resourceName": "省内投标",
    				"parentId": 19,
    				"resourceStatus": "disabled",
    				"depth": 0,
    				"resourceUrl": "",
    				"createTime": 1544444261000,
    				"children": [],
    				"id": 27,
    				"resourceType": "menu"
    			}, {
    				"resourceRemark": "",
    				"resourceContent": "",
    				"orderNum": 0,
    				"resourceDescription": "",
    				"resourceName": "市内投标",
    				"parentId": 19,
    				"resourceStatus": "disabled",
    				"depth": 0,
    				"resourceUrl": "",
    				"createTime": 1544444261000,
    				"children": [],
    				"id": 26,
    				"resourceType": "menu"
    			}],
    			"id": 19,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "日常支出管理",
    			"parentId": 3,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 18,
    			"resourceType": "menu"
    		}],
    		"id": 3,
    		"resourceType": "menu"
    	}, {
    		"resourceRemark": "",
    		"resourceContent": "",
    		"orderNum": 0,
    		"resourceDescription": "",
    		"resourceName": "考勤管理",
    		"parentId": 0,
    		"resourceStatus": "disabled",
    		"depth": 0,
    		"resourceUrl": "",
    		"createTime": 1544148905000,
    		"children": [{
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "会议考勤管理",
    			"parentId": 2,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 17,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "日常考勤管理",
    			"parentId": 2,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 16,
    			"resourceType": "menu"
    		}],
    		"id": 2,
    		"resourceType": "menu"
    	}, {
    		"resourceRemark": "",
    		"resourceContent": "",
    		"orderNum": 0,
    		"resourceDescription": "",
    		"resourceName": "系统管理",
    		"parentId": 0,
    		"resourceStatus": "disabled",
    		"depth": 0,
    		"resourceUrl": "",
    		"createTime": 1544148843000,
    		"children": [{
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "签到管理",
    			"parentId": 1,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [{
    				"resourceRemark": "",
    				"resourceContent": "",
    				"orderNum": 0,
    				"resourceDescription": "",
    				"resourceName": "离场签到",
    				"parentId": 15,
    				"resourceStatus": "disabled",
    				"depth": 0,
    				"resourceUrl": "",
    				"createTime": 1544444261000,
    				"children": [],
    				"id": 25,
    				"resourceType": "menu"
    			}, {
    				"resourceRemark": "",
    				"resourceContent": "",
    				"orderNum": 0,
    				"resourceDescription": "",
    				"resourceName": "进场签到",
    				"parentId": 15,
    				"resourceStatus": "disabled",
    				"depth": 0,
    				"resourceUrl": "",
    				"createTime": 1544444261000,
    				"children": [],
    				"id": 24,
    				"resourceType": "menu"
    			}],
    			"id": 15,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "页面管理",
    			"parentId": 1,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 14,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "菜单管理",
    			"parentId": 1,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 13,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "权限管理",
    			"parentId": 1,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 12,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "",
    			"orderNum": 0,
    			"resourceDescription": "",
    			"resourceName": "角色管理",
    			"parentId": 1,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 11,
    			"resourceType": "menu"
    		}, {
    			"resourceRemark": "",
    			"resourceContent": "/",
    			"orderNum": 0,
    			"resourceDescription": "首页页面",
    			"resourceName": "用户管理",
    			"parentId": 1,
    			"resourceStatus": "disabled",
    			"depth": 0,
    			"resourceUrl": "",
    			"createTime": 1544444261000,
    			"children": [],
    			"id": 10,
    			"resourceType": "menu"
    		}],
    		"id": 1,
    		"resourceType": "menu"
    	}]
    }
    

      

  • 相关阅读:
    数组——基础
    程序流程控制——循环结构
    程序流程控制——分支结构
    运算符
    进制
    变 量
    Java中的名称命名规范
    标识符(Identifier)
    保留字(reserved word)
    关键字
  • 原文地址:https://www.cnblogs.com/swtjavaspace/p/10098888.html
Copyright © 2011-2022 走看看