java實現動態許可權(選單管理)動態新增選單,動態新增角色SSM框架
阿新 • • 發佈:2018-12-17
首先是資料庫設計
Menu表(選單表)
Role表(角色表)
Role_Menu表(角色選單關係表)
User表(使用者表)
User_Role表(使用者角色關係表)
其他實體類就略過了
在Menu實體類中添加了一個List<Menu>集合
在MenuMapper中寫了如下的方法
/** * 根據等級或父節點查詢選單資訊 * @param level 等級 * @param parentid 父節點編號 * @return 選單資訊 */ List<Menu> selectMenuByLevelOrParentid(@Param("level") int level,@Param("parentid") int parentid); 對應的 <select id="selectMenuByLevelOrParentid" resultType="menu"> SELECT <include refid="Base_Column_List" /> FROM MENU <where> and level = #{level} and parent_id = #{parentid} </where> </select>
MenuService和實現類中
/** * 查詢選單(父子選單對應形式) * @return */ public List<Menu> SelectMenuByparent(Menu m,int level,int parentid); public List<Menu> SelectMenuByparent(Menu m,int i,int id){ List<Menu> menus=this.selectMenuByLevelOrParentid(i,id); if(menus!=null) { if(m!=null) { m.setMenus(menus); } for (Menu menu : menus) { i++; this.SelectMenuByparent(menu,i,menu.getId()); } } return menus; }
在controller中呼叫
/** * 顯示所有選單 * @param model * @return */ @RequestMapping("list") public String SelectAllMenu(Model model) { List<Menu> menu = new ArrayList<Menu>(); //查詢所有選單資訊 menu = this.menuService.SelectMenuByparent(null,0,0); //存入選單資訊 model.addAttribute("menus", menu); MenuTree mt = new MenuTree(menu); return "/Menu/index"; }
原始碼地址以後會上傳