使用easyui的accordion及tree,根据用户角色加载相应的菜单,实现多角色用户的不同权限
1.数据库设计
主要依靠五个数据库完成
1)用户表
记录用户信息,其中字段为后台用户信息字段。
2)角色表
记录后台所有角色。
3)菜单表
记录系统菜单,主要字段有

4)用户角色表
记录每一个用户的角色信息,主要两个字段
用户id 角色id
5)角色菜单表
记录每一个角色拥有的菜单权限,主要两个字段
菜单id 角色id
2.HTML
<div region="west" split="true" title="导航栏" id="naver">
<div class="easyui-accordion" fit="true" id="navmenu">
</div>
</div>
页面端首先内置一个accordion,注:accordion的id为navmenu,后面将会使用该id来动态加载菜单
3.后台
后台建立一个菜单的实体类,这个类记录menu的信息,前端向后台请求信息时,返回一个封装的menu的List的json数据,需要注意的是,需分别建立返回父菜单及子菜单的方法,父菜单方法返回该角色能够看到的所有一级菜单,子菜单返回指定父菜单下的所有二级菜单。
menu实体类:
package com.melon.haul.entity;
public class Menu {
private int id;
private String mName;
private int mParent;
private String mUrl;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public int getmParent() {
return mParent;
}
public void setmParent(int mParent) {
this.mParent = mParent;
}
public String getmUrl() {
return mUrl;
}
public void setmUrl(String mUrl) {
this.mUrl = mUrl;
}
@Override
public String toString() {
return "Menu [id=" + id + ", mName=" + mName + ", mParent=" + mParent
+ ", mUrl=" + mUrl + "]";
}
}
请求父菜单及子菜单方法:
@RequestMapping(value = "/getParentMenu", method = RequestMethod.POST)
private @ResponseBody
JSONObject getMenu(@RequestParam("type"

本文介绍了如何使用EasyUI的accordion和tree组件,根据用户角色从数据库中加载相应的菜单,实现不同角色用户的权限管理。通过设计用户、角色、菜单等数据库表,后台返回JSON数据,前端动态生成accordion菜单,并在点击时动态加载子菜单。
最低0.47元/天 解锁文章
1万+





