如何使用Java实现树形菜单对象
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"如何使用Java实现树形菜单对象",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用Java实现树形菜单对象"吧!1、SysMenup
千家信息网最后更新 2026年11月02日如何使用Java实现树形菜单对象
本篇内容主要讲解"如何使用Java实现树形菜单对象",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用Java实现树形菜单对象"吧!
1、SysMenu
package com.zy.shiro.domain;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import com.fasterxml.jackson.annotation.JsonInclude;import io.swagger.annotations.ApiModel;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;import java.io.Serializable;import java.util.ArrayList;import java.util.List;/** * sys_menu * @author */@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@ApiModel(value="SysMenu对象", description="菜单管理")public class SysMenu implements Serializable { @TableId(value = "menu_id", type = IdType.AUTO) private Long menuId; /** * 父菜单id,父菜单为0 */ private Long parentId; /** * 菜单名称 */ private String menuName; /** * 菜单url */ private String url; /** * 授权(多个用逗号分隔,如:user:list,user:create) */ private String permisions; /** * 类型 0:目录 1:菜单 2:按钮 */ private Integer menuType; /** * 菜单图标 */ private String icon; /** * 排序 */ private Integer orderNum; @TableField(exist = false) private List list;// @JsonInclude(value = JsonInclude.Include.NON_EMPTY)// private List child=new ArrayList<>(); private static final long serialVersionUID = 1L;} 2、TreeNode
package com.zy.common.tree;import com.fasterxml.jackson.annotation.JsonInclude;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import sun.reflect.generics.tree.Tree;import java.io.Serializable;import java.util.ArrayList;import java.util.List;@Data@AllArgsConstructor@NoArgsConstructorpublic class TreeNode implements Serializable { private Integer id; private Integer pid; private String title; private String icon; private String href; private String target; private Boolean spread; @JsonInclude(value = JsonInclude.Include.NON_EMPTY) private List child=new ArrayList<>(); /** * 登陆成功之后系统主而需要的菜单树的json对象构造器 * @param id * @param pid * @param title * @param icon * @param href * @param target * @param spread */ public TreeNode(Integer id, Integer pid, String title, String icon, String href, String target, Boolean spread) { this.id = id; this.pid = pid; this.title = title; this.icon = icon; this.href = href; this.target = target; this.spread = spread; } public static class TreeNodeBuilder{ /** * * @param treeNodes 要生成有层级关系的源数据 * @param topId 最顶层的pid 根节点的pid * @return */ public static List build(List treeNodes,Integer topId){ List nodes=new ArrayList<>(); for (TreeNode n1 : treeNodes) { if(n1.getPid().equals(topId)){ //说明n1节点是 nodes.add(n1); } for (TreeNode n2 : treeNodes) { if(n2.getPid().equals(n1.getId())){ //说明n2是n1的子节点 应该放到n1的clild里面 n1.getChild().add(n2); } } } return nodes; } }} 3、SysMenuServiceImpl
根据用户id查询该用户所拥有的菜单
// 1 用户的id 查询角色 List4、测试
@Test public void test3() { SysUser sysUser = sysUserMapper.selectById(1); List menuList = null; if (null != sysUser) { menuList = this.sysMenuService.queryeMenuByUserIdForList(sysUser.getUserId()); List treeNodes=new ArrayList<>(); for (SysMenu m : menuList) { treeNodes.add(new com.zy.common.tree.TreeNode(m.getMenuId().intValue(),m.getParentId().intValue(),m.getMenuName(),m.getIcon(),m.getUrl(),"_self",Boolean.TRUE)); } List build = com.zy.common.tree.TreeNode.TreeNodeBuilder.build(treeNodes, 0); System.out.println(build); 到此,相信大家对"如何使用Java实现树形菜单对象"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
菜单
对象
查询
树形
用户
节点
内容
数据
角色
学习
实用
更深
成功
兴趣
名称
图标
多个
实用性
实际
层级
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网电商科技
汇久创客互联网科技
西安互联网科技公司
互联网金融科技委员会
科技大学互联网专业好不好
中国最先进互联网科技公司
银川新华互联网科技学校地址
北京三清互联网科技
青岛中康互联网医疗科技有限公司
互联网系的金融科技公司
互联网科技研发水平
乌苏新华互联网科技做什么的
本届互联网博览会上的黑科技
996高科技互联网公司
洛阳共同富裕互联网科技有限公司
上海钢联属于互联网科技股吗
湖北辰鑫科技互联网
唯美互联网科技
互联网时代高科技布局
互联网科技的前景
广州百单互联网科技有限公司
万易互联网科技
时间互联网络科技
互联网科技实习生岗位职责
现代互联网科技股
华夏互联网科技业
互联网与医疗科技
湖北辰鑫科技互联网
银川新华互联网科技学校原画
唐山双旺合互联网科技产业园