Hutool工具处理树形结构


前言

今天在写前项目时,遇到了处理树形结构,展示菜单的问题,这也是项目中非常常见的需求,之前在学习项目的时候写过一次,今天突发奇想,可不可以使用hutool工具包来创建树形结构呢?于是我就去官网查查了,发现有一个树形结构工具类TreeUtil。看官方文档有点不太懂,于是又去网上看看其他大佬的使用方法,最后我总结了一下。


一、先上代码示例

//返回类型可以直接使用List<Tree<String>>,返回到前端拿到的数据也是map类型,前端可以直接使用
public List<Tree<String>> getAllMenus() {
		//首先拿到我们的数据,数据中一定要有id,菜单标题,父亲节点id
        List<Menu> menuList = menuMapper.getAllMenus();
        //自定义节点配置
        TreeNodeConfig nodeConfig = new TreeNodeConfig();
        nodeConfig.setIdKey("menu_id");
        nodeConfig.setNameKey("title");
        nodeConfig.setParentIdKey("parent_id");
		
		//构建树
		//四个参数,第一个:构建树的原始数据,第二个:根节点的id
		//第三个,自定义节点配置,第四个:返回的数据映射方法
        return TreeUtil.build(menuList,"0",nodeConfig,(treeNode,tree)->{
        	//tree:构建的树 treeNode:原始数据的每个数据
            tree.setId(treeNode.getMenuId().toString());
            tree.setName(treeNode.getTitle());
            tree.setParentId(treeNode.getParentId().toString());
           	//额外映射的数据(自定义)
            tree.putExtra("component",treeNode.getComponent());
            tree.putExtra("path",treeNode.getPath());
            tree.putExtra("redirect",treeNode.getRedirect());
            tree.putExtra("name",treeNode.getName());
            tree.putExtra("meta", MapUtil.builder().put("icon",treeNode.getIcon()).put("title",treeNode.getTitle()).map());
            tree.putExtra("hidden",treeNode.getHidden());
        });
    }

返回前端的数据

在这里插入图片描述
这是相关的数据库的表
在这里插入图片描述

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gunalaer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值