EasyUI(tree组件)

tree(树的简介)

树控件在web页面中一个将分层数据以树形结构进行显示。它提供用户展开、折叠、拖拽、编辑和异步加载等功能。

树控件数据格式化

1.每个节点都具备以下属性:

属性释义
id节点ID,对加载远程数据很重要。
text显示节点文本。
state节点状态,‘open’ 或 ‘closed’,默认:‘open’。如果为’closed’的时候,将不自动展开该节点。
checked表示该节点是否被选中。
attributes被添加到节点的自定义属性。
children一个节点数组声明了若干节点。

2,把每个节点创建为通过性的存储类,设置好指定的格式(Tree生产类)

package com.houzhihong.vo;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;


public class TreeVo<T> {
	/**
	 * 节点ID
	 */
	private String id;
	/**
	 * 显示节点文本
	 */
	private String text;
	/**
	 * 节点状态,open closed
	 */
	private Map<String, Object> state;
	/**
	 * 节点是否被选中 true false
	 */
	private boolean checked = false;
	/**
	 * 节点属性
	 */
	private Map<String, Object> attributes;

	/**
	 * 节点的子节点
	 */
	private List<TreeVo<T>> children = new ArrayList<TreeVo<T>>();

	/**
	 * 父ID
	 */
	private String parentId;
	/**
	 * 是否有父节点
	 */
	private boolean hasParent = false;
	/**
	 * 是否有子节点
	 */
	private boolean hasChildren = false;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	public Map<String, Object> getState() {
		return state;
	}

	public void setState(Map<String, Object> state) {
		this.state = state;
	}

	public boolean isChecked() {
		return checked;
	}

	public void setChecked(boolean checked) {
		this.checked = checked;
	}

	public Map<String, Object> getAttributes() {
		return attributes;
	}

	public void setAttributes(Map<String, Object> attributes) {
		this.attributes = attributes;
	}

	public List<TreeVo<T>> getChildren() {
		return children;
	}

	public void setChildren(List<TreeVo<T>> children) {
		this.children = children;
	}

	public boolean isHasParent() {
		return hasParent;
	}

	public void setHasParent(boolean isParent) {
		this.hasParent = isParent;
	}

	public boolean isHasChildren() {
		return hasChildren;
	}

	public void setChildren(boolean isChildren) {
		this.hasChildren = isChildren;
	}

	public String getParentId() {
		return parentId;
	}

	public void setParentId(String parentId) {
		this.parentId = parentId;
	}

	public TreeVo(String id, String text, Map<String, Object> state, boolean checked, Map<String, Object> attributes,
                  List<TreeVo<T>> children, boolean isParent, boolean isChildren, String parentID) {
		super();
		this.id = id;
		this.text = text;
		this.state = state;
		this.checked = checked;
		this.attributes = attributes;
		this.children = children;
		this.hasParent = isParent;
		this.hasChildren = isChildren;
		this.parentId = parentID;
	}

	public TreeVo() {
		super();
	}

}

3.相当于后台数据库匹配的id ,name ,pid
在这里插入图片描述

目标

1、实现通过tree组件来完成左侧菜单栏的展示
在这里插入图片描述

2.不使用jsp展示数据(if判断,遍历),可以通过easyUI写好的组件库
在这里插入图片描述

3.通过自定义的js,URL转到json格式的文件
在这里插入图片描述

4.json在线解析格式化
在这里插入图片描述

5.控制台查询出来然后通过在线工具转成json格式
在这里插入图片描述

{"id":"000","text":"菜单管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"79D5736B5D2B4427AE5D1DC2D9F3F474","menuid":"000","menuname":"菜单管理","menuURL":null,"parentid":"-1","iconcls":null,"authid":"000","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"004","text":"统一配置","state":null,"checked":false,"attributes":{"self":{"serialNo":"1C63DA57E65243F184D6789A88E137B9","menuid":"004","menuname":"统一配置","menuURL":null,"parentid":"000","iconcls":null,"authid":"004","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"004004","text":"人员管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"269D9A1546E44A438AEA0513DFFA8D86","menuid":"004004","menuname":"人员管理","menuURL":null,"parentid":"004","iconcls":null,"authid":"004004","showflag":"Y","displayno":"1","operatime":"2017-10-29","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"004004001","text":"角色维护","state":null,"checked":false,"attributes":{"self":{"serialNo":"365C214ED29841E0900BA7D0EECEE4FE","menuid":"004004001","menuname":"角色维护","menuURL":"jsp/config/userManage/roleInfo","parentid":"004004","iconcls":null,"authid":"004004001","showflag":"Y","displayno":"1","operatime":"2017-10-29","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004004","hasParent":true,"hasChildren":false},{"id":"004004004","text":"权限信息维护","state":null,"checked":false,"attributes":{"self":{"serialNo":"79D5736B5D2B4427AE5D1DC2D9F3F414","menuid":"004004004","menuname":"权限信息维护","menuURL":"jsp/config/userManage/authInfo","parentid":"004004","iconcls":null,"authid":"004004004","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004004","hasParent":true,"hasChildren":false},{"id":"004004003","text":"人员信息维护","state":null,"checked":false,"attributes":{"self":{"serialNo":"90A28BFD207744428C623182701113BC","menuid":"004004003","menuname":"人员信息维护","menuURL":"jsp/userManage.jsp","parentid":"004004","iconcls":null,"authid":"004004003","showflag":"Y","displayno":"1","operatime":"2017-10-29","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004004","hasParent":true,"hasChildren":false},{"id":"004004002","text":"工作组维护","state":null,"checked":false,"attributes":{"self":{"serialNo":"E51F9D7EDF7648E9A641100A10DD5D67","menuid":"004004002","menuname":"工作组维护","menuURL":"jsp/config/userManage/groupInfo","parentid":"004004","iconcls":null,"authid":"004004002","showflag":"Y","displayno":"1","operatime":"2017-10-29","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004004","hasParent":true,"hasChildren":false}],"parentId":"004","hasParent":true,"hasChildren":true},{"id":"004001","text":"数据字典","state":null,"checked":false,"attributes":{"self":{"serialNo":"49EB2A822E03457498A0A19F9956AE2B","menuid":"004001","menuname":"数据字典","menuURL":"jsp/config/dataDict","parentid":"004","iconcls":null,"authid":"004001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004","hasParent":true,"hasChildren":false},{"id":"004003","text":"权限管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"7B63D97C1B2C4D8896AB3648B065CCD1","menuid":"004003","menuname":"权限管理","menuURL":null,"parentid":"004","iconcls":null,"authid":"004003","showflag":"Y","displayno":"1","operatime":"2017-10-28","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"004003003","text":"用户权限管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"059CB9B033C247A1AD4B3F0E78C0ED55","menuid":"004003003","menuname":"用户权限管理","menuURL":"jsp/userManage.jsp","parentid":"004003","iconcls":null,"authid":"004003003","showflag":"Y","displayno":"1","operatime":"2017-10-28","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004003","hasParent":true,"hasChildren":false},{"id":"004003002","text":"组权限管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"57BC4AB9F93741ACBBD2BDEC71538653","menuid":"004003002","menuname":"组权限管理","menuURL":"jsp/config/groupAuthorityManage","parentid":"004003","iconcls":null,"authid":"004003002","showflag":"Y","displayno":"1","operatime":"2017-10-28","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004003","hasParent":true,"hasChildren":false},{"id":"004003001","text":"角色权限管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"DA05BB54E33845C4922A586B88C48205","menuid":"004003001","menuname":"角色权限管理","menuURL":"jsp/config/roleAuthorityManage","parentid":"004003","iconcls":null,"authid":"004003001","showflag":"Y","displayno":"1","operatime":"2017-10-28","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004003","hasParent":true,"hasChildren":false}],"parentId":"004","hasParent":true,"hasChildren":true},{"id":"004002","text":"系统参数配置","state":null,"checked":false,"attributes":{"self":{"serialNo":"D0D2C27E371B491DB1099E50B2D0A8DA","menuid":"004002","menuname":"系统参数配置","menuURL":"jsp/config/systemParamCfg","parentid":"004","iconcls":null,"authid":"004002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"004","hasParent":true,"hasChildren":false}],"parentId":"000","hasParent":true,"hasChildren":true},{"id":"002","text":"后勤管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"20137C05907C42C7B488F9208E6FDDFE","menuid":"002","menuname":"后勤管理","menuURL":null,"parentid":"000","iconcls":null,"authid":"002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"002004","text":"宿舍日常报销","state":null,"checked":false,"attributes":{"self":{"serialNo":"1F560F60BAFA488B9D95E793226A1CE7","menuid":"002004","menuname":"宿舍日常报销","menuURL":null,"parentid":"002","iconcls":null,"authid":"002004","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"002004002","text":"大件购置","state":null,"checked":false,"attributes":{"self":{"serialNo":"391B22000A874FF7B27298E3B4AC1487","menuid":"002004002","menuname":"大件购置","menuURL":"jsp/support/largeThingInfo","parentid":"002004","iconcls":null,"authid":"002004002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"002004","hasParent":true,"hasChildren":false},{"id":"002004001","text":"维修","state":null,"checked":false,"attributes":{"self":{"serialNo":"BC03322D761841F08859350D1C4B0ECA","menuid":"002004001","menuname":"维修","menuURL":"jsp/support/repairInfo","parentid":"002004","iconcls":null,"authid":"002004001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"002004","hasParent":true,"hasChildren":false}],"parentId":"002","hasParent":true,"hasChildren":true},{"id":"002001","text":"宿舍管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"85EBB07BE0B349D3B3AD1B50ED546E00","menuid":"002001","menuname":"宿舍管理","menuURL":"jsp/support/roominfo","parentid":"002","iconcls":null,"authid":"002001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"002","hasParent":true,"hasChildren":false},{"id":"002005","text":"后勤统计","state":null,"checked":false,"attributes":{"self":{"serialNo":"9C660197D7B44BE584101F286AC4DC8A","menuid":"002005","menuname":"后勤统计","menuURL":"jsp/support/totalInfo","parentid":"002","iconcls":null,"authid":"002005","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"002","hasParent":true,"hasChildren":false},{"id":"002002","text":"水电费","state":null,"checked":false,"attributes":{"self":{"serialNo":"C9A01427553848449C76864118A014E6","menuid":"002002","menuname":"水电费","menuURL":"jsp/support/waterElectricity","parentid":"002","iconcls":null,"authid":"002002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"002","hasParent":true,"hasChildren":false},{"id":"002003","text":"房屋租金","state":null,"checked":false,"attributes":{"self":{"serialNo":"D4E33EF7C17747E9A52F765A71CBDABE","menuid":"002003","menuname":"房屋租金","menuURL":null,"parentid":"002","iconcls":null,"authid":"002003","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"002003002","text":"租金信息","state":null,"checked":false,"attributes":{"self":{"serialNo":"5D2D5331AFEC47FB8BA8D2AD15EFF2FF","menuid":"002003002","menuname":"租金信息","menuURL":"jsp/support/moneyPayInfo","parentid":"002003","iconcls":null,"authid":"002003002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"002003","hasParent":true,"hasChildren":false},{"id":"002003001","text":"租房合同","state":null,"checked":false,"attributes":{"self":{"serialNo":"C7E633BAA3DE4EB0803F2D8C2EDC3196","menuid":"002003001","menuname":"租房合同","menuURL":"jsp/support/rentalAgreement","parentid":"002003","iconcls":null,"authid":"002003001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"002003","hasParent":true,"hasChildren":false}],"parentId":"002","hasParent":true,"hasChildren":true}],"parentId":"000","hasParent":true,"hasChildren":true},{"id":"003","text":"财务","state":null,"checked":false,"attributes":{"self":{"serialNo":"53E6874290344BFB8AE0713706F31840","menuid":"003","menuname":"财务","menuURL":null,"parentid":"000","iconcls":null,"authid":"003","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"003003","text":"住宿费","state":null,"checked":false,"attributes":{"self":{"serialNo":"131DDC09EDF549FE839DE571F6C2957D","menuid":"003003","menuname":"住宿费","menuURL":null,"parentid":"003","iconcls":null,"authid":"003003","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"003003002","text":"水电费","state":null,"checked":false,"attributes":{"self":{"serialNo":"7E7652596263419690E56D36A6B11083","menuid":"003003002","menuname":"水电费","menuURL":"jsp/finance/waterElectricity","parentid":"003003","iconcls":null,"authid":"003003002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"003003","hasParent":true,"hasChildren":false},{"id":"003003001","text":"租金","state":null,"checked":false,"attributes":{"self":{"serialNo":"A1519F777F5941E08E08634CC3770976","menuid":"003003001","menuname":"租金","menuURL":"jsp/finance/roomMoney","parentid":"003003","iconcls":null,"authid":"003003001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"003003","hasParent":true,"hasChildren":false}],"parentId":"003","hasParent":true,"hasChildren":true},{"id":"003002","text":"成考费","state":null,"checked":false,"attributes":{"self":{"serialNo":"8E0639EC6B7C4F399EFA5922BE329618","menuid":"003002","menuname":"成考费","menuURL":"jsp/finance/adultExam","parentid":"003","iconcls":null,"authid":"003002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"003","hasParent":true,"hasChildren":false},{"id":"003001","text":"学费","state":null,"checked":false,"attributes":{"self":{"serialNo":"F734A1B966DC4D47A7C473165C7B262B","menuid":"003001","menuname":"学费","menuURL":null,"parentid":"003","iconcls":null,"authid":"003001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"003001002","text":"升学学费","state":null,"checked":false,"attributes":{"self":{"serialNo":"0AAADCF1F3884271A5C42EE845F47317","menuid":"003001002","menuname":"升学学费","menuURL":"jsp/finance/higherGrade","parentid":"003001","iconcls":null,"authid":"003001002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"003001","hasParent":true,"hasChildren":false},{"id":"003001001","text":"开学学费","state":null,"checked":false,"attributes":{"self":{"serialNo":"7F84AB7E29B44987BF117A69A2750B6B","menuid":"003001001","menuname":"开学学费","menuURL":"jsp/finance/enteredSchool","parentid":"003001","iconcls":null,"authid":"003001001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"003001","hasParent":true,"hasChildren":false}],"parentId":"003","hasParent":true,"hasChildren":true}],"parentId":"000","hasParent":true,"hasChildren":true},{"id":"001","text":"学生管理","state":null,"checked":false,"attributes":{"self":{"serialNo":"7F0BCDA507EA426E9A49C1A6EC184569","menuid":"001","menuname":"学生管理","menuURL":null,"parentid":"000","iconcls":null,"authid":"001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[{"id":"001005","text":"就业信息","state":null,"checked":false,"attributes":{"self":{"serialNo":"425CA8235A894573B65BA269D5550AF6","menuid":"001005","menuname":"就业信息","menuURL":"jsp/student/employmentInfo","parentid":"001","iconcls":null,"authid":"001005","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"001","hasParent":true,"hasChildren":false},{"id":"001003","text":"缴费信息","state":null,"checked":false,"attributes":{"self":{"serialNo":"7FB270DC0BA745E7A58EA65D41B70D8F","menuid":"001003","menuname":"缴费信息","menuURL":"jsp/student/paymentInfo","parentid":"001","iconcls":null,"authid":"001003","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"001","hasParent":true,"hasChildren":false},{"id":"001001","text":"学生相关信息","state":null,"checked":false,"attributes":{"self":{"serialNo":"CF0BBFA5E82543F5A29B62E73614266A","menuid":"001001","menuname":"学生相关信息","menuURL":"jsp/student/studentReferInfo","parentid":"001","iconcls":null,"authid":"001001","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"001","hasParent":true,"hasChildren":false},{"id":"001004","text":"表现相关信息","state":null,"checked":false,"attributes":{"self":{"serialNo":"DE820480D19248F59443ECEAF1388506","menuid":"001004","menuname":"表现相关信息","menuURL":"jsp/student/performanceInfo","parentid":"001","iconcls":null,"authid":"001004","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"001","hasParent":true,"hasChildren":false},{"id":"001002","text":"班级相关信息","state":null,"checked":false,"attributes":{"self":{"serialNo":"E8BF8DBC615A4066BC0A069DF4DC0D01","menuid":"001002","menuname":"班级相关信息","menuURL":"jsp/student/classReferInfo","parentid":"001","iconcls":null,"authid":"001002","showflag":"Y","displayno":"1","operatime":"2017-10-27","operator":"0001","mark":null,"extend3":null,"extend2":null,"extend1":null,"extend5":null,"extend4":null}},"children":[],"parentId":"001","hasParent":true,"hasChildren":false}],"parentId":"000","hasParent":true,"hasChildren":true}],"parentId":"-1","hasParent":false,"hasChildren":true}

6.通过在线工具处理好的json格式文件
在这里插入图片描述


7.界面引用
在这里插入图片描述

<script type="text/javascript"
	src="${pageContext.request.contextPath}/static/js/menu.js"></script>

工具(jar包与通用类)

1.通用工具类
在这里插入图片描述

2.导入jar包依赖
在这里插入图片描述

3.默认节点指定顶级节点的(通用类)

package com.houzhihong.util;


import com.houzhihong.vo.TreeVo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class BuildTree {

	/**
	 * 默认-1为顶级节点
	 * @param nodes
	 * @param <T>
	 * @return
	 */
	public static <T> TreeVo<T> build(List<TreeVo<T>> nodes) {

		if (nodes == null) {
			return null;
		}
		List<TreeVo<T>> topNodes = new ArrayList<TreeVo<T>>();

		for (TreeVo<T> children : nodes) {
			String pid = children.getParentId();
			if (pid == null || "0".equals(pid)) {
				topNodes.add(children);

				continue;
			}

			for (TreeVo<T> parent : nodes) {
				String id = parent.getId();
				if (id != null && id.equals(pid)) {
					parent.getChildren().add(children);
					children.setHasParent(true);
					parent.setChildren(true);
					continue;
				}
			}

		}

		TreeVo<T> root = new TreeVo<T>();
		if (topNodes.size() == 1) {
			root = topNodes.get(0);
		} else {
			root.setId("000");
			root.setParentId("-1");
			root.setHasParent(false);
			root.setChildren(true);
			root.setChecked(true);
			root.setChildren(topNodes);
			root.setText("顶级节点");
			Map<String, Object> state = new HashMap<>(16);
			state.put("opened", true);
			root.setState(state);
		}

		return root;
	}

	/**
	 * 指定idparam为顶级节点
	 * @param nodes
	 * @param idParam
	 * @param <T>
	 * @return
	 */
	public static <T> List<TreeVo<T>> buildList(List<TreeVo<T>> nodes, String idParam) {
		if (nodes == null) {
			return null;
		}
		List<TreeVo<T>> topNodes = new ArrayList<TreeVo<T>>();

		for (TreeVo<T> children : nodes) {

			String pid = children.getParentId();
			if (pid == null || idParam.equals(pid)) {
				topNodes.add(children);

				continue;
			}

			for (TreeVo<T> parent : nodes) {
				String id = parent.getId();
				if (id != null && id.equals(pid)) {
					parent.getChildren().add(children);
					children.setHasParent(true);
					parent.setChildren(true);

					continue;
				}
			}

		}
		return topNodes;
	}

}

4.dao层 拿到数据库的数据展示出来拿到通用类指定的节点格式输出json串
(进行打印)

package com.houzhihong.dao;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.houzhihong.entity.Menu;

import com.houzhihong.util.BaseDao;
import com.houzhihong.util.BuildTree;
import com.houzhihong.util.PageBean;
import com.houzhihong.vo.TreeVo;

public class MenuDao extends BaseDao<Menu>{
	
	public List<Menu> lsit(Menu menu,PageBean pagebean) throws InstantiationException, IllegalAccessException, SQLException{
		String sql="select * from t_easyui_menu";
	
		return super.executeQuery(sql,Menu.class, pagebean);
}

public static void main(String[] args) throws InstantiationException, IllegalAccessException, SQLException, JsonProcessingException {
	MenuDao menuDao = new MenuDao();
	List<Menu> lsit = menuDao.lsit(null, null);
		//通过工具类完成指定格式的输出
	 List<TreeVo<Menu>> nodes = new ArrayList<TreeVo<Menu>>();
	 //	Permission的格式不满足easyUI的组件展示格式的
	 //目的:将 List<TreeVo<Permission>>转换成 list<<TreeVct<T>>
	//实现将list<Permission>得到的单个Permission转成 TreeVo,将TreeVo加入到nodes
	
		
	TreeVo treeVo =null;
	for (Menu p : lsit) {
			treeVo = new TreeVo<>();
			treeVo.setId(p.getMenuid());
			treeVo.setText(p.getMenuname());
			treeVo.setParentId(p.getParentid());
			Map<String, Object> attributes = new HashMap<String, Object>();
			attributes.put("self", p);
			treeVo.setAttributes(attributes);
			nodes.add(treeVo);
		}   
		
		TreeVo<Menu> parent = BuildTree.build(nodes);
		ObjectMapper om = new ObjectMapper();
			String jsonstr = om.writeValueAsString(parent);
			System.out.println(jsonstr);
}

}


界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<!--全局样式  -->
<link rel="stylesheet" type="text/css"
	href="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/themes/black/easyui.css">
<!--定义图标  -->
<link rel="stylesheet" type="text/css"
	href="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/themes/black/easyui.css">

<script type="text/javascript"
	src="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/jquery.min.js"></script>
<!--组件库源码的js文件  -->
<script type="text/javascript"
	src="${pageContext.request.contextPath}/static/js/jquery-easyui-1.5.1/jquery.easyui.min.js"></script>

<script type="text/javascript"
	src="${pageContext.request.contextPath}/static/js/index.js"></script>

<title>登录后的主界面</title>
</head>
<body class="easyui-layout">
	<div data-options="region:'north',border:false"
		style="height: 60px; background: #B3DFDA; padding: 10px">管理系统</div>
	<div data-options="region:'west',split:true,title:'West'"
			
				
		style="width: 150px; padding: 10px;">
		<ul id="tt"></ul>  
		
		</div>
	<div
		data-options="region:'east',split:true,collapsed:true,title:'East'"
		style="width: 100px; padding: 10px;">east region</div>
	<div data-options="region:'south',border:false"
		style="height: 50px; background: #A9FACD; padding: 10px;">south
		region</div>
	<div data-options="region:'center',title:'Center'"></div>
</body>
</html>

效果图

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值