/** * 获取菜单列表 */ @PreAuthorize("@ss.hasPermi('system:menu:list')") @GetMapping("/list") public AjaxResult list(SysMenu menu) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); Long userId = loginUser.getUser().getUserId(); List<SysMenu> menus = menuService.selectMenuList(menu, userId); //查询所有菜单 //返回的菜单树 List<SysMenu> rootMenus = new ArrayList<>(); for (SysMenu sysMenu : menus) { //pid(上级Id)为0的是根菜单 if (0 == sysMenu.getParentId()) { rootMenus.add(sysMenu); } } //遍历,找到二级菜单(根菜单的id和所有菜单中的pid比较) for (SysMenu rootMenu : rootMenus) { List<SysMenu> child = getChild(rootMenu.getMenuId(), menus); rootMenu.setChildren(child); } return AjaxResult.success(rootMenus); } /** * 递归获取下级菜单 * @param pid 上级Id * @param menus 所有菜单 * @return
java递归返回菜单树
最新推荐文章于 2024-03-05 09:29:19 发布
该博客展示了如何使用Java进行递归操作,构建系统菜单的树形结构。通过查询所有菜单并找到根节点,然后递归遍历找出二级及更深层级的菜单,将它们组织成树形结构。主要涉及的类包括SysMenu、LoginUser和菜单服务(menuService),使用了Spring Security的权限注解@PreAuthorize进行权限控制。
摘要由CSDN通过智能技术生成