zoukankan      html  css  js  c++  java
  • 权限管理

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

    权限管理就完成了

  • 相关阅读:
    Quartus II 12.0傻瓜版安装教程(附下载链接)
    MathType 免费版安装教程(附下载链接)
    Matlab与Visual Studio 安装和联合编译配置(附下载链接)
    操作系统的概述
    Sublime Text 3 安装,C/C++代码的编译运行以及代码格式化的配置 (附下载链接)
    DSP中的DELAY_US ( )函数存放在FLASH下执行在RAM中的方法
    vtk:如何利用鼠标交会三维模型,获取交点坐标?
    进一步完善了近景摄影测量和低空数据处理软件!
    SURF算法速度更快!
    vtk:如何使用鼠标选中多个点?
  • 原文地址:https://www.cnblogs.com/guokai870510826/p/5774042.html
Copyright © 2011-2022 走看看