码迷,mamicode.com
首页 > 其他好文 > 详细

权限管理

时间:2016-08-15 20:26:01      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

首先介绍,权限管理是将菜单信息全部写在数据库中(如图,菜单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>

权限管理就完成了

权限管理

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!