jstree 主页 :
http://www.jstree.com/
其中提供了一种从后台取数据渲染成树的形式:
$("#mytree").tree({ data : { type : "json", url : "${ctx}/user/power!list.do" } });
对于url中返回的值必须是它定义的json数据形式:
$("#demo2").tree({ data : { type : "json", json : [ { attributes: { id : "pjson_1" }, state: "open", data: "Root node 1", children : [ { attributes: { id : "pjson_2" }, data: { title : "Custom icon", icon : "../media/images/ok.png" } }, { attributes: { id : "pjson_3" }, data: "Child node 2" }, { attributes: { id : "pjson_4" }, data: "Some other child node" } ]}, { attributes: { id : "pjson_5" }, data: "Root node 2" } ] } });
这里需要一个从后台实例集合转换为它规定的json数据的形式.
/** * 无限递归获得jsTree的json字串 * * @param parentId * 父权限id 6.8日修改 * @return */ private String getJson(long parentId) { List<Authority> list = authorityManager.queryByParentId(parentId); for (int i = 0; i < list.size(); i++) { Authority au = list.get(i); if (au.getIshaschild() == 1) { str += "{attributes:{id:\"" + au.getAnid() + "\"},state:\"open\",data:\"" + au.getAnname() + "\" ,"; str += "children:["; this.getJson(au.getAnid()); str += "]"; str += " }"; } else { str += "{attributes:{id:\"" + au.getAnid() + "\"},state:\"open\",data:\"" + au.getAnname() + "\" " + " }"; } if (i < list.size() - 1) { str += ","; } } return str; }
调用: