前言
在实现权限控制的时候,我们需要根据登录的用户,生成它所拥有的访问权限的菜单,这时我们就需要从数据库里插叙出菜单,然后通过递归的方式生成树,传递到前台页面,渲染主页菜单。实际上,我们在分配权限的时候,也会用到这种方式,遍历出全部的菜单。如何将查出来的数据遍历成树,是本文研究的问题。
遍历菜单的两种方式
1、基于JDK 8以下版本
实体类

递归菜单方法:


2、基于JDK 8 以上版本的
实体类
public class MenuVo {
private Long id;
private Long pid;
private String title;
private String icon;
private String href;
private String target;
private List<MenuVo> child;
public MenuVo(Long id, Long pid, String title, String icon, String href, String target) {
super();
this.id = id;
this.pid = pid;
this.title = title;
this.icon = icon;
this.href = href;
this.target = target;
}
public MenuVo() {
super();
}
}
private List<Menu> buildMenuTree(List<Menu> menuList, Long long1) {
List<Menu> treeList = new ArrayList<>();
menuList.forEach(menu -> {
if (Objects.equals(long1, menu.getPid())) {
menu.setChild(buildMenuTree(menuList, menu.getId()));
treeList.add(menu);
}
});
return treeList;
}