SSM项目4:权限系统-角色与权限管理

1.建立角色与权限的表

为多对多关系

角色表role
在这里插入图片描述

权限表permission
在这里插入图片描述
角色与权限中间表role_permission_rel
在这里插入图片描述
使用代码生成器生成相关mapper

2.建立角色页面

角色页面其实跟员工页面进入后一样 都是列表
<%--数据表格--%>
<div id="role_dg"></div>
<%--添加/编辑对话框--%>
<div id="dialog">
    <form id="myform">
        <table align="center" style="border-spacing: 20px 30px">
            <input type="hidden" name="id">
            <tr align="center">
                <td>角色编号: <input type="text" name="username" class="easyui-validatebox" ></td>
                <td>角色名称: <input type="text" name="username" class="easyui-validatebox" ></td>
            </tr>
            <tr>
                <td><div id="role_data1"></div></td>
                <td><div id="role_data2"></div></td>
            </tr>
        </table>
    </form>
</div>
<%--数据表顶部的工具栏--%>
<div id="toolbar">
    <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true" id="add">添加</a>
    <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true" id="edit">编辑</a>
    <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-remove',plain:true" id="remove">删除</a>
</div>

对应的js
数据表格
在这里插入图片描述
在这里插入图片描述

3.加载权限数据实现点击添加权限

加载数据,控制层就不展示了
bug
在控制层由于permissionList方法没有注解@ResponseBody,因此左侧的所有权限的请求发生404错误
在这里插入图片描述

实现点击添加权限的逻辑,先判断是否存在该权限,若没有则添加,若有则高亮显示该权限

在这里插入图片描述

实现已有权限点击删除
在这里插入图片描述

4.添加角色权限

定义角色权限关系:一个角色(Role)有多个权限(Permission)
在这里插入图片描述

点击保存时,如果没有隐藏字段id,则为添加操作

保存时, 参数传递,默认只传递input中的内容,还需要在提交表单时, 把添加的权限信息提交过去
在这里插入图片描述
接收参数,保存角色与权限
在这里插入图片描述
在这里插入图片描述 在这里插入图片描述
小知识点,传多个参数时Mapper的参数列表需要注解@param

void insertRoleAndPermissionRel(@Param("rid") Long rid, @Param("pid") Long pid);

点击编辑按钮进行数据回显
在这里插入图片描述
对应的方法的sql语句
在这里插入图片描述

判断是否为编辑按钮的保存操作
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5.删除某个角色

在这里插入图片描述

6.员工添加角色

添加员工时, 添加角色下拉列表
在这里插入图片描述
在这里插入图片描述
保存时, 保存时传递角色信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小bug:点击保存之后提示保存失败,而EmployeeControler打印emploee对象中可以打出来,也就是数据确实可以传递给后台
①问题出在与数据库的交互中,因为先调用了employee的insert操作,如下图
在这里插入图片描述
②接着调用方法来向employee_role_rel中insert一条记录,保存eid和rid,
问题就出在了第①步中,因为employee的id是主键且为递增,所以保存员工时无需传值给id,或者说所传的employee对象中id=null,所以再进行第②步时,eid也为null,而在员工角色关系表中,eid为主键
解决:第一步对应的sql语句加上
在这里插入图片描述
官方的说法是该参数的作用是:“允许JDBC支持自动生成主键,需要驱动兼容”,如何理解这句话的意思?
其本意是说:对于支持自动生成记录主键的数据库,如:MySQL,SQL Server,此时设置useGeneratedKeys参数值为true,在执行添加记录之后可以获取到数据库自动生成的主键ID。

员工编辑

回显数据
在这里插入图片描述
在这里插入图片描述
bug:这里又犯了一个错误,传入控制层的参数写成了和url不对应的参数,url为"/getRoleByEid?id=" + row.id,而控制层写成了eid

保存编辑:
在这里插入图片描述

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值