public void getAllModuleTree(){
List<TreeDataModel<Module>> result = new ArrayList<TreeDataModel<Module>>();
result = createChildren("root");
getWriter().write(LazyValueFilterSerializer.serialize(result));
}
public List<TreeDataModel<Module>> createChildren(String parentId){
List<TreeDataModel<Module>> list = new ArrayList<TreeDataModel<Module>>();
List<Module> mlist = roleService.getModuleByParent(parentId);
if(mlist.size()>0){
for(int i=0;i<mlist.size();i++){
Module m = mlist.get(i);
TreeDataModel<Module> node = new TreeDataModel<Module>();
node.setAttributes(null);
node.setId(m.getMid());
node.setText(m.getName());
node.setState("open");
node.setChildren(createChildren(m.getMid()));
list.add(node);
}
}
return list;
}
package com.company.core.model;
import java.util.List;
public class TreeDataModel<T> {
/** 树节点id,可选属性 */
private String id;
/** 节点名称 */
private String text;
/** 原始对象 */
private T attributes;
/** 是否展开 open closed */
private String state;
/** 树节点图标,非必需 */
private String iconCls;
/** 孩子节点 */
private List<TreeDataModel<T>> children;
/**
* 是否选中
*/
private boolean checked;
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 T getAttributes() {
return attributes;
}
public void setAttributes(T attributes) {
this.attributes = attributes;
}
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 List<TreeDataModel<T>> getChildren() {
return children;
}
public void setChildren(List<TreeDataModel<T>> children) {
this.children = children;
}
public boolean isChecked() {
return checked;
}
public void setChecked(boolean checked) {
this.checked = checked;
}
// @Override
// public String toString() {
// //return JsonUtils.convertToJsonfromObject(this).toString();
// }
}
function loadModuleTree(){ var url = contextPath + "/role/!getAllModuleTree.action"; $('#modulebt').combotree({ //data:prodata, url:url, multiple:true, editable:false, checkbox:false, cascadeCheck:false, onCheck:function(){ }, onLoadSuccess : function() { setModuleRole(); } }); } function setModuleRole(){ var url = contextPath + "/role/!getModulesByRole.action"; var actionUrl = url + "?roleId="+roleId; $.ajax({ type: "get", async: false, url: actionUrl, contentType: "application/json; charset=utf-8", dataType: "text", cache: false, success: function (data) { var p = []; if(data != ""){ if(data.indexOf(",")>0){ var a = data.split(","); for(var i=0;i<a.length;i++){ var m = a[i]; p.push(m); } }else{ p.push(data); } //必须采用数组的方式才能赋值 $('#modulebt').combotree('setValues',p); } }, error :function (XMLHttpRequest, textStatus, err) { } }); } function saveModuleRole(){ var t = $('#modulebt').combotree('tree'); var n = t.tree('getChecked'); var mids = ""; for(var i=0;i<n.length;i++){ mids = mids + n[i].id+"@"; } mids = mids.substring(0,mids.length-1); var actionUrl = contextPath + "/role/!saveOrUpdateModuleRole.action?ids="+mids+"&roleId="+roleId; $.ajax({ type: "get", async: false, url: actionUrl, contentType: "application/json; charset=utf-8", dataType: "text", cache: false, success: function (data) { if(data == "true"){ $.messager.alert('提示','保存成功!','info'); var listUrl = contextPath + "/role/!list.action"; setTimeout(function(){ window.location.href = listUrl; },1000); }else if(data == "false"){ $.messager.alert('提示','保存失败!','info'); } }, error :function (XMLHttpRequest, textStatus, err) { } }); }