树形展示数据

 1   //1、核心代码递归实现组装数形数据
 2   public String getResourceTreeToJson() {
 3         return this.createTreeJson(findAll());//findAll()是全查select * from tableName 
 4     }
 5 
 6     /**
 7      * 生成josn
 8      * @param list
 9      * @return
10      */
11     private String createTreeJson(List<Resource> list) {
12         JSONArray rootArray = new JSONArray();
13         for (Resource resource : list) {
14             if (resource.getParentid() == null) {
15                 JSONObject rootObj = createBranch(list, resource);
16                 rootArray.add(rootObj);
17             }
18         }
19         return rootArray.toString();
20     }
21     
22     /**
23      * 递归遍历找到当前节点的所有子节点
24      * @param list
25      * @param currentNode
26      * @return
27      */
28     private JSONObject createBranch(List<Resource> list, Resource currentNode) {
29         JSONObject currentObj = JSONObject.fromObject(currentNode);
30         JSONArray childArray = new JSONArray();
31         for (Resource newNode : list) {
32             if (newNode.getParentid() != null && newNode.getParentid().compareTo(currentNode.getId()) == 0) {
33                     JSONObject childObj = createBranch(list, newNode);
34                     childArray.add(childObj);
35                 }
36         }
37         if (!childArray.isEmpty()) {
38             currentObj.put("children", childArray);
39         }
40         return currentObj;
41     }


 //2、使用ztree实现树形数据简单无需用递归组装,简单方便
 1 select 
 2         dep.dep_id,
 3         dep.prv_id,
 4         dep.dep_code, //主要返回
 5         dep.dep_name, //主要返回
 6         dep2.dep_name as parent_Name,
 7         dep2.dep_code AS parent_Code,//主要返回
 8         dep.dep_order,
 9         dep.dep_state
10         from sys_department dep
11             LEFT JOIN sys_department dep2
12                 on dep.pdep_id = dep2.dep_id     
13 
14 
15 主要返回的对应ztree的id、pId、name,其它属性可自定义,ztree会自动识别组装树形节点的数据;
  还有就是实体bean中的属性除了定义数据库中的列属性之外,还应该把ztree中的节点属性也定义上

 

posted @ 2017-06-04 19:29  Cockroach_Ge  阅读(1265)  评论(0编辑  收藏  举报