这是小编前段时间看孙宇老师的easyui的讲解视频记录下来的一个异步树加载的部分代码
--加载所需要的实体类,tree模型
package com.aaa.easyuiModel;
import java.util.List;
import java.util.Map;
/**
* easyui使用的tree模型
*
* @author 孙宇
*
*/
public class EasyuiTreeNode implements java.io.Serializable {
private String id;
private String text;// 树节点名称
private String iconCls;// 前面的小图标样式
private Boolean checked = false;// 是否勾选状态
private Map<String, Object> attributes;// 其他参数
private List<EasyuiTreeNode> children;// 子节点
private String state = "open";// 是否展开(open,closed)
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 Boolean getChecked() {
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<EasyuiTreeNode> getChildren() {
return children;
}
public void setChildren(List<EasyuiTreeNode> children) {
this.children = children;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getIconCls() {
return iconCls;
}
public void setIconCls(String iconCls) {
this.iconCls = iconCls;
}
}
import java.util.List;
import java.util.Map;
/**
* easyui使用的tree模型
*
* @author 孙宇
*
*/
public class EasyuiTreeNode implements java.io.Serializable {
private String id;
private String text;// 树节点名称
private String iconCls;// 前面的小图标样式
private Boolean checked = false;// 是否勾选状态
private Map<String, Object> attributes;// 其他参数
private List<EasyuiTreeNode> children;// 子节点
private String state = "open";// 是否展开(open,closed)
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 Boolean getChecked() {
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<EasyuiTreeNode> getChildren() {
return children;
}
public void setChildren(List<EasyuiTreeNode> children) {
this.children = children;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getIconCls() {
return iconCls;
}
public void setIconCls(String iconCls) {
this.iconCls = iconCls;
}
}
--加载节点控制方法
public void findPoliceTree(Policemenu menu,HttpServletResponse response) {
List<Policemenu> findPoliceByPidList = policemenuBizImp.findPoliceByPid(menu); --jsp页面会自动往 后台传对应的父节点的值,第一次传入的时候父节点为null,按照父节点查询出来放到 findPoliceByPidList
List<EasyuiTreeNode> tree = new ArrayList<EasyuiTreeNode>(); --定义一个list集合用来装获取节点信 息
for (Policemenu policemenu : findPoliceByPidList) {
EasyuiTreeNode n= new EasyuiTreeNode(); --循环实例化一个节点
n.setId(policemenu.getId()); --把从数据库获取的节点的ID放入
n.setText(policemenu.getText()); -- 把从数据库获取的节点的名称放入
if(policemenuBizImp.countChildren(policemenu.getId())>0){ --判断这个节点是否是最后一层节 点,如果是,状态改为close(默认为open)
n.setState("closed");
}
tree.add(n); --循环把节点放入数组
}
System.out.println(tree.toString());
String tree1 = JSON.toJSONString(tree); -- 转换成JSON传出
response.setContentType("application/json;charset=utf-8"); --编码格式
PrintWriter w = null;
try {
w = response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
w.write(tree1); --写到前台
}
List<Policemenu> findPoliceByPidList = policemenuBizImp.findPoliceByPid(menu); --jsp页面会自动往 后台传对应的父节点的值,第一次传入的时候父节点为null,按照父节点查询出来放到 findPoliceByPidList
List<EasyuiTreeNode> tree = new ArrayList<EasyuiTreeNode>(); --定义一个list集合用来装获取节点信 息
for (Policemenu policemenu : findPoliceByPidList) {
EasyuiTreeNode n= new EasyuiTreeNode(); --循环实例化一个节点
n.setId(policemenu.getId()); --把从数据库获取的节点的ID放入
n.setText(policemenu.getText()); -- 把从数据库获取的节点的名称放入
if(policemenuBizImp.countChildren(policemenu.getId())>0){ --判断这个节点是否是最后一层节 点,如果是,状态改为close(默认为open)
n.setState("closed");
}
tree.add(n); --循环把节点放入数组
}
System.out.println(tree.toString());
String tree1 = JSON.toJSONString(tree); -- 转换成JSON传出
response.setContentType("application/json;charset=utf-8"); --编码格式
PrintWriter w = null;
try {
w = response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
w.write(tree1); --写到前台
}
前台jsp 页面只需要一个url
$('#tt').tree({
url: 'policeTreeController/findPoliceTree.do',
onClick: function(node){
$('#ZGGAJGNAME').val(node.text); // 在用户点击的时候显示
$('#px').hide();
}
});
onClick: function(node){
$('#ZGGAJGNAME').val(node.text); // 在用户点击的时候显示
$('#px').hide();
}
});