首先是数据库设计
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";}
源码由于年数多了找不到了,自己的作业自己做,谢谢