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