easyui_tree组件动态代入的数据后台代码
将数据库表内的数据代入tree组件
思路
首先,我们的tree组件的值是从一个json文件里获取到的,那么如果我们要将数据库的表的数据代入的话,就要先得到它的json文件,首先要得到一个tree的vo文件,就是json格式需要的字段,然后写一个dao方法获取到它的全部的值,通过工具类完成指定格式的输出,因为数据库表的格式是不能满足easyui的tree组建的展现的数据格式的,所以我们要将得到的List里面的单个对象转换成TreeVo的格式,然后将它加入TreeVo的集合里,然后通过一个工具类BuildTree转换成json的格式输出。
具体思维导图,我整理了一下,如下:
实现过程
然后上代码:
首先事前准备静态资源以及依赖
然后是TreeVo的类,是tree的格式的需要的字段
package com.wangjuanxia.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();
}
}
表的实体类,我这里用到的是一个menu表(t_easyui_menu)
package com.wangjuanixa.entity;
import java.sql.Date;
import java.sql.Timestamp;
public class Menu {
private String serialNo;
private String menuid;
private String menuname;
private String menuURL;
private String parentid;
private String iconcls;
private String authid;
private String showflag;
private String displayno;
private Date operatime;
private String operator;
private String mark;
private String Extend1;
private String Extend2;
private String Extend3;
private String Extend4;
private String Extend5;
public String getSerialNo() {
return serialNo;
}
public void setSerialNo(String serialNo) {
this.serialNo = serialNo;
}
public String getMenuid() {
return menuid;
}
public void setMenuid(String menuid) {
this.menuid = menuid;
}
public String getMenuname() {
return menuname;
}
public void setMenuname(String menuname) {
this.menuname = menuname;
}
public String getMenuURL() {
return menuURL;
}
public void setMenuURL(String menuURL) {
this.menuURL = menuURL;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
public String getIconcls() {
return iconcls;
}
public void setIconcls(String iconcls) {
this.iconcls = iconcls;
}
public String getAuthid() {
return authid;
}
public void setAuthid(String authid) {
this.authid = authid;
}
public String getShowflag() {
return showflag;
}
public void setShowflag(String showflag) {
this.showflag = showflag;
}
public String getDisplayno() {
return displayno;
}
public void setDisplayno(String displayno) {
this.displayno = displayno;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
public String getExtend1() {
return Extend1;
}
public void setExtend1(String extend1) {
Extend1 = extend1;
}
public String getExtend2() {
return Extend2;
}
public void setExtend2(String extend2) {
Extend2 = extend2;
}
public String getExtend3() {
return Extend3;
}
public void setExtend3(String extend3) {
Extend3 = extend3;
}
public String getExtend4() {
return Extend4;
}
public void setExtend4(String extend4) {
Extend4 = extend4;
}
public String getExtend5() {
return Extend5;
}
public void setExtend5(String extend5) {
Extend5 = extend5;
}
@Override
public String toString() {
return "Menu [serialNo=" + serialNo + ", menuid=" + menuid + ", menuname=" + menuname + ", menuURL=" + menuURL
+ ", parentid=" + parentid + ", iconcls=" + iconcls + ", authid=" + authid + ", showflag=" + showflag
+ ", displayno=" + displayno + ", operatime=" + operatime + ", operator=" + operator + ", mark=" + mark
+ ", Extend1=" + Extend1 + ", Extend2=" + Extend2 + ", Extend3=" + Extend3 + ", Extend4=" + Extend4
+ ", Extend5=" + Extend5 + "]";
}
}
Dao方法
package com.wangjuanxia.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wangjuanxia.entity.Menu;
import com.wangjuanxia.util.BaseDao;
import com.wangjuanxia.util.BuildTree;
import com.wangjuanxia.util.PageBean;
import com.wangjuanxia.vo.TreeVo;
public class MenuDao extends BaseDao<Menu>{
public List<Menu> list(Menu permission,PageBean pageBean) throws Exception{
String sql="select * from t_easyui_menu";
return super.executeQuery(sql, Menu.class, pageBean);
}
public static void main(String[] args) throws Exception {
MenuDao pd=new MenuDao();
List<Menu> list = pd.list(null, null);
//通过工具类完成指定格式的输出
List<TreeVo<Menu>> nodes=new ArrayList<TreeVo<Menu>>();
//Menu的格式是不能满足easyui的tree组建的展现的数据格式的
//目的,将List<Menu>转换成List<TreeVo<Menu>>
//实现:将List<Menu>得到的单个Menu转换成TreeVo,将TreeVo加入nodes
TreeVo treeVo=null;
for (Menu m : list) {
treeVo=new TreeVo<>();
treeVo.setId(m.getMenuid());
treeVo.setText(m.getMenuname());
treeVo.setParentId(m.getParentid());
/*Map<String, Object> a=ttributes=new HashMap<String, Object>();
attributes.put("self", m);
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);
}
}
然后就能得到它输出的json格式的数据啦
然后将它复制到json的官网可以格式化/校验一下(json官网:https://www.sojson.com/)
然后tree的数据库实现数据动态代入的后台就差不多啦~
前台我后面会再发博客补充~
总结
前台我后面会再发博客补充,代码比较多,而且比较绕,请细品哦~ bǎi bài