在开发过程中,必定会遇到树形结构的数据,一般都是后端直接从库里查询出来然后自定义方法去封装成树形树形返回给前端。其实Hutool工具类也提供了这个方法,这种方式使用起来也很简单。

        //1.配置树节点信息,指定key,可直接使用默认的key
        TreeNodeConfig config = new TreeNodeConfig();
        //2.查询数据
        List<AreaCode> areaCodes = areaCodeDao.selectAll();
        //3.转为树结构,其中rootId参数代表根节点的父级id值
        List<Tree<String>> treeList = TreeUtil.build(areaCodes, "0", config, ((object, treeNode) -> {
            //对key进行映射赋值
            treeNode.putExtra("id", object.getId());
            treeNode.putExtra("parentId", object.getPid());
            treeNode.putExtra("name", object.getName());
            treeNode.putExtra("deep", object.getAreaLevel());
        }));

在封装树形结构时,需要将数据与树结构对象进行映射,上述是采用的默认的key,其源码如下:

当然也可以自定义key,那么在进行key映射时需要保持一致

        TreeNodeConfig config = new TreeNodeConfig();
        //id
        config.setIdKey("id");
        //父id
        config.setParentIdKey("pid");
        //名称
        config.setNameKey("name");
        //最大递归深度
        config.setDeep(3);
        //孩子节点
        config.setChildrenKey("childrenList");
        //排序字段
        config.setWeightKey("sort");

查询的数据如下图,是树形结构。

原文地址:http://www.cnblogs.com/zys2019/p/16836192.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性