如何使用Java实现树形菜单对象
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,本篇内容主要讲解"如何使用Java实现树形菜单对象",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用Java实现树形菜单对象"吧!1、SysMenup
千家信息网最后更新 2025年01月18日如何使用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 查询角色 List
4、测试
@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安全错误
数据库的锁怎样保障安全
批量导入数据到数据库有没有日志
阿里云服务器基础运维与管理
软件开发收入的会计分录
安徽飞运互联网科技有限公司
网络技术大赛队伍名称
海量数据库官网
数据网络安全管理的定义
浪潮服务器管理密码
PPPoE服务器
加拿大和美国有网络安全专业吗
葫芦岛网络安全中心队长
c 上传文件到服务器
旅游外文文献数据库
网络安全讲座心得800
怎样保证网络安全原理
世界科技论文数据库
宽城区智能网络技术服务诚信经营
凌云诺切换服务器
网络安全与自动化专业哪个好
app系统软件开发商
网络安全手抄报写什么内容 简单
阿里云服务器基础运维与管理
杭州市模具企业erp软件开发
公司网络安全设置
数据库程序设计结束语
qq相册提示服务器错误
数据库技术与应用尔雅答案
参加网络安全大赛单位
苹果sa网络安全吗
全军出击哈尔滨服务器地址