欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

程序员文章站 2022-04-09 21:01:59
1 学习计划 1、角色管理 n 添加角色功能 n 角色分页查询 2、用户管理 n 添加用户功能 n 用户分页查询 3、修改Realm中授权方法(查询数据库) 4、使用ehcache缓存权限数据 n 添加ehcache依赖 n 配置缓存管理器 5、系统菜单根据登录人展示 n 调整页面ajax请求地址 ......

1 学习计划

1、角色管理

n 添加角色功能

n 角色分页查询

2、用户管理

n 添加用户功能

n 用户分页查询

3、修改Realm中授权方法(查询数据库)

4、使用ehcache缓存权限数据

添加ehcache依赖

n 配置缓存管理器

5、系统菜单根据登录人展示

调整页面ajax请求地址

n 服务端查询菜单数据

 

 

角色管理

2.1 添加角色功能

2.1.1 页面调整

首先先完善pages/admin/function_add.jsp添加权限的页面,把下拉框改为combotree

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

他的数据格式为:

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

代码主要修改DaofindAll方法:

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

Function.hbm.xml修改children为立即加载

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

function.java中加上,成功实现下拉框的修改

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

然后继续进行下一步调整,打开页面:WEB-INF/pages/admin/role_add.jsp

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第一步:修改页面,使用ztree勾选效果(checkbox

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第二步:修改ajax方法的请求URL地址

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

第三步:为保存按钮绑定事件,提交表单

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

2.1.2 服务端实现

创建角色管理ActionServiceDao

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

Service代码:

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

配置struts.xml

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

2.2 角色分页查询

修改role.jsp页面中datagridURL地址

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

RoleAction中提供分页查询方法:

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

用户管理

3.1 添加用户

页面:WEB-INF/pages/admin/userinfo.jsp

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

3.1.1 页面调整

第一步:发送ajax请求,获取角色数据,在回调函数中动态展示角色数据,展示为checkbox

<tr>
                       <td>选择角色:</td>
                       <td colspan="3" id="roleTD">
                           <script type="text/javascript">
                               $(function(){
                                   //页面加载完成后,发送ajax请求,获取所有的角色数据
                                   $.post('roleAction_listajax.action',function(data){
                                       //在ajax回调函数中,解析json数据,展示为checkbox
                                       for(var i=0;i<data.length;i++){
                                           var id = data[i].id;
                                           var name = data[i].name;
                                           $("#roleTD").append('<input id="'+id+'" type="checkbox" name="roleIds" value="'+id+'"><label for="'+id+'">'+name+'</label>');
                                       }
                                   });
                               });
                           </script>
                       </td>
                   </tr>

 

 Labelfor属性可以使点击文字也能触发checkbox的点击事件。

 

第二步:在RoleAction中提供listajax方法,查询所有角色,返回json数据

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第三步:为保存按钮绑定事件,提交表单

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

3.1.2 服务端实现

UserAction中提供add方法,保存一个用户

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

Service代码:

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

配置struts.xml

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

3.2 分页查询

第一步:修改userlist.jsp页面中datagridURL地址

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

在数据表格中,修改field,由电话修改为角色

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

第二步:在UserAction中提供分页查询方法

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第三步:在User类中提供getRoleNames方法,getBirthdayString方法

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

修改Realm中授权方法(查询数据库)

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

FunctionDao中扩展方法,根据用户id查询对应的权限

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

使用ehcache缓存权限数据

ehcache是专门缓存插件,可以缓存Java对象,提高系统性能。

l ehcache提供的jar包:

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第一步:在pom.xml文件中引入ehcache的依赖

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第二步:在项目中提供ehcache的配置文件

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第三步:在spring配置文件中配置缓存管理器对象,并注入给安全管理器对象

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

 

系统菜单根据登录人动态展示

第一步:修改index.jsp页面中ajax方法的请求地址

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第二步:在Action中提供findMenu方法

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

第三步:在Service中提供方法

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

Dao代码:

 JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

 

注意:需要在Function类中提供getpId方法(用于显示父级目录)

    public String getpId(){
        if(parentFunction == null)
            return "0";
        return parentFunction.getId();
    }