权限管理

首先介绍,权限管理是将菜单信息全部写在数据库中(如图,菜单ID,父菜单ID,菜单名称,菜单点击跳转的路径,状态,菜单级别。。。这里菜单分为3级别)。

出来的3级样子

介绍思路:根据登录的用户,去查询角色,然后查询出用户拥有的菜单。

接着将查询结果拼接成导航中的菜单信息。

/**
     * 登录以后获取用户所拥有的菜单
     * @param pd
     * @return
     * @throws Exception
   *这里的PageData是传入的参数,这里当然是用户的账号
*/ public String findMenu(PageData pd) throws Exception{ //pd.put("USER_ID", "U001"); List<MenuEntity> menuList = (List<MenuEntity>) dao.findForList("MenuMapper.loginFindMenu", pd); //查询用户的所有菜单 List<MenuEntity> nodeList1 = new ArrayList<MenuEntity>(); //用于存放一级菜单 List<MenuEntity> nodeList2 = new ArrayList<MenuEntity>(); //用于存放二级菜单 List<MenuEntity> nodeList3 = new ArrayList<MenuEntity>(); //用来存放三级菜单 for(int i=0;i<menuList.size();i++){ if("1".equals(menuList.get(i).getNODE_TYPE())){ nodeList1.add(menuList.get(i)); } if("2".equals(menuList.get(i).getNODE_TYPE())){ nodeList2.add(menuList.get(i)); } if("3".equals(menuList.get(i).getNODE_TYPE())){ nodeList3.add(menuList.get(i)); } } sb = new StringBuffer(); //用来存放菜单拼接的字符串 for(int m1=0;m1<nodeList1.size();m1++){//BUTTON_ID menuTmp1 = nodeList1.get(m1); sb.append("<li><a href="#">").append("<i class="+menuTmp1.getBUTTON_ID()+"></i>").append("<span class="nav-label">").append(menuTmp1.getMENU_NAM()); sb.append("</span><span class="fa arrow"></span></a>"); sb.append(" <ul class="nav nav-second-level">"); for(int i = 0; i< nodeList2.size(); i++){ menuTmp2 = nodeList2.get(i); if(menuTmp1.getMENU_ID() == menuTmp2.getMENU_PAR_ID()){ sb.append("<li>"); sb.append("<a href="#">").append(menuTmp2.getMENU_NAM()).append("<span class="fa arrow"></span></a>"); sb.append(" <ul class="nav nav-third-level">"); for(int j=0;j<nodeList3.size();j++){ menuTmp3 = nodeList3.get(j); if(menuTmp2.getMENU_ID() == menuTmp3.getMENU_PAR_ID()){ sb.append("<li><a class="J_menuItem" ").append("href="/UM-Web-BRS"+menuTmp3.getMENU_URL()+""").append(">"+menuTmp3.getMENU_NAM()+"</a></li>"); } } sb.append("</ul>"); sb.append("</li>"); } } sb.append("</ul>"); sb.append("</li>"); } return sb.toString(); }

controller中的代码

    
    @RequestMapping("/LoginFindMenu")
    public ModelAndView LoginFindMenu(HttpServletRequest request) throws Exception{
        logger.info("用户菜单查询---> 参数列表:"+pd);
         String menuHtml = loginService.findMenu(pd);
        ModelAndView mv = new ModelAndView("index.jsp") ;//需要跳转的路径
        mv.addObject("menuHtml", menuHtml);
        return mv;
    }

最后将结果放回页面的相应地方

<div class="logo-element">UM</div>
</li>
${menuHtml}
</ul>

权限管理就完成了

原文地址:https://www.cnblogs.com/guokai870510826/p/5774042.html