数据库内容:
- [{
- "id":1,
- "text":"Folder1",
- "iconCls":"icon-save",
- "children":[{
- "text":"File1",
- "checked":true
- },{
- "text":"Books",
- "state":"open",
- "attributes":{
- "url":"/demo/book/abc",
- "price":100
- },
- "children":[{
- "text":"PhotoShop",
- "checked":true
- },{
- "id": 8,
- "text":"Sub Bookds",
- "state":"closed"
- }]
- }]
- },{
- "text":"Languages",
- "state":"closed",
- "children":[{
- "text":"Java"
- },{
- "text":"C#"
- }]
- }]
Controller//OrgBean,这个是存放javabean的,与数据库相同。
private int orgid;
private int parentorgid;
private String orgname;
private String orgcode;
private int orglevel;
注意:注解需要加上method = RequestMethod.POST,produces = "application/json; charset=utf-8",返回JSON格式不会出现乱码。//根据orgid查询机构信息
public List<OrgBean> getList(int orgid){
List<OrgBean> listorgList = orgService.getOrgById(orgid);//获取机构信息,简单查询select * from....
return listorgList;
}//对子机构进行递归,若有孩子节点,则继续生成json格式
public JSONArray getJsonArray(List<OrgBean> list) throws JSONException{
JSONArray array = new JSONArray();
JSONObject obj =null;
for (Iterator<OrgBean> it = list.iterator(); it.hasNext();) {
OrgBean object = (OrgBean) it.next();
obj = new JSONObject();
obj.put("id", object.getOrgid());
obj.put("text", object.getOrgname());
obj.put("iconCls", "icon-org");
//obj.put("state", "closed");
//判断是否有孩子节点,如果有孩子节点,递归。
if (getList(object.getOrgid()).size()!=0) {
obj.put("children", getJsonArray(getList(object.getOrgid())));
}
array.put(obj);
}
return array;
}
@ResponseBody
@RequestMapping(value = "/org_tree_json", method = RequestMethod.POST,produces = "application/json; charset=utf-8")
public String createJson(HttpServletRequest request,HttpServletResponse response) {
JSONArray array = new JSONArray();
JSONObject json = new JSONObject();
List<OrgBean> list=null;
//取到头结点
List<OrgBean> listhead = orgService.getOrgByLevel(1);
//循环插入子节点
for (Iterator<OrgBean> iterator = listhead.iterator(); iterator
.hasNext();) {
OrgBean object = (OrgBean) iterator.next();
json.put("id", object.getOrgid());//标识
json.put("text", object.getOrgname());//显示内容
json.put("iconCls", "icon-orgmain");//用于图标
//json.put("state", "closed");
list = getList(object.getOrgid());
if (list.size()!=0) {
//进入方法,递归寻找children
json.put("children", getJsonArray(list));
}
}
array.put(json);//需要注意,最后需要添加到JSONArray中,如果不添加,用sysout打印测试,也会有[],但是这不是easyUI需要的格式。return array.toString();
}
只需要使用这个ul,加上easyui的特定data-options,则可以完整的展现出来。<ul id="tt" class="easyui-tree" data-options="url:'../org/org_tree_json',lines:true,animate:true"></ul>