树形展示数据

 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中的节点属性也定义上

 

转载于:https://www.cnblogs.com/gqs92/p/6941586.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值