多级菜单实现逻辑

(1)数据库

多级菜单实现逻辑_第1张图片

(2)mybatis的sql语句

多级菜单实现逻辑_第2张图片

(3)MenuServiceImpl实现类中的方法

逻辑:先根据某一字段(getMenuUrl())判断当前子菜单中是否还有子菜单,如果有就获取所有子菜单,并set为当前子菜单的子菜单。

public List listAllMenu() {
        List rl = this.listAllParentMenu();
        for(Menu menu : rl){
            List fistSubList = this.listSubMenuByParentId(menu.getMenuId());//根据父Id找出所有一级子菜单
            for (Menu m : fistSubList) {
                    if ("".equals(m.getMenuUrl())) {//如果一级子菜单有子菜单
                        List secondSubList = this.listSubMenuByParentId(m.getMenuId());//根据一级子菜单id找出所有二级子菜单
                        m.setSubMenu(secondSubList);//给一级子菜单添加子菜单
                    }
            }
            menu.setSubMenu(fistSubList);
        }
        return rl;
    }

看图更清晰点

多级菜单实现逻辑_第3张图片

(4)页面的jstl语句

 "${menuList}" var="menu">
        if test="${menu.hasMenu}">
            
          
        

图上有注释

多级菜单实现逻辑_第4张图片

(5)效果

多级菜单实现逻辑_第5张图片

你可能感兴趣的:(web基础,前端基础,easyUI)