Java SSM 项目实战 day07用户角色关联操作,添加角色,以及添加权限
发布日期:2021-06-29 15:04:24 浏览次数:2 分类:技术文章

本文共 8145 字,大约阅读时间需要 27 分钟。

1、先查询出这个角色没有的权限信息

2、关联角色与权限信息,主要就是向role_permission 表中插入数据
在这里插入图片描述

一、添加角色

在这里插入图片描述

显示路径地址

1、在UserController当中创建findUserByIdAndAllRole

在这里插入图片描述

//查询用户以及用户可以添加的角色    @RequestMapping("/findUserByIdAndAllRole.do")    public ModelAndView findUserByIdAndAllRole(@RequestParam(name = "id", required = true) String userid) throws Exception {
ModelAndView mv = new ModelAndView(); //1、根据用户id查询用户 UserInfo userInfo = userService.findById(userid); //2、根据用户的id查询可以添加的角色 List
otherRoles = userService.findOtherRole(userid); mv.addObject("user", userInfo); mv.addObject("roleList", otherRoles); mv.setViewName("user-role-add"); return mv; }

2、在IUserService接口和实现类,当中创建对应的方法

在这里插入图片描述

在这里插入图片描述

List
findOtherRole(String userid);

在UserServiceImpl当中调用Dao

在这里插入图片描述

@Override    public List
findOtherRole(String userid) {
return userDao.findOtherRole(userid); }

在这里插入图片描述

3、在IUserDao当中查询数据

在这里插入图片描述

@Select("select * from role where id not in (select roleId from users_role where userId = #(userId))")    List
findOtherRole(String userId);

4、创建user-role-add.jsp

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
数据 - AdminLTE2定制版

用户管理 添加角色表单

ID 角色名称 角色描述
${role.id} ${role.roleName } ${role.roleDesc}

5、勾选并保存

在这里插入图片描述

(1)在UserController当中创建对应addRoleToUser方法

在这里插入图片描述

//给用户添加角色    @RequestMapping("/addRoleToUser")    public void addRoleToUser(@RequestParam(name = "userId", required = true) String userId,                              @RequestParam(name = "ids", required = true) String[] roleIds) {
userService.addRoleToUser(userId,roleIds); }

在这里插入图片描述

(2)在IUserService当中以及对应的实现类当中创建对应的方法

在这里插入图片描述

void addRoleToUser(String userId, String[] roleIds);

在UserServiceImpl当中

在这里插入图片描述

@Override    public void addRoleToUser(String userId, String[] roleIds) {
for(String roleId:roleIds){
userDao.addRoleToUser(userId,roleId); } }
(3)在IUserDao当中

在这里插入图片描述

@Insert("insert into users_role(userId,roleId) values (#{userId},#{roleId})")    void addRoleToUser(String userId, String roleId);
(4)在UserController当中addRoleToUser方法

在这里插入图片描述

//给用户添加角色    @RequestMapping("/addRoleToUser")    public String addRoleToUser(@RequestParam(name = "userId", required = true) String userId,                                @RequestParam(name = "ids", required = true) String[] roleIds) {
userService.addRoleToUser(userId,roleIds); return "redirect:findAll.do"; }
(5)运行测试

重新运行后访问:

在这里插入图片描述

在这里插入图片描述

发现报错证明dao出错了
在这里插入图片描述

(6)修改IUserDao当中的addRoleToUser方法

在这里插入图片描述

@Insert("insert into users_role(userId,roleId) values (#{userId},#{roleId})")void addRoleToUser(@Param("userId")String userId,@Param("roleId")String roleId);
(7)清理工程并重新运行

在这里插入图片描述

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

二、添加权限

1、修改页面

(1)修改role-list.jsp

在这里插入图片描述

		详情		添加权限

2、修改RoleController完善对应的方法以及其service和dao

(1)RoleController

在这里插入图片描述

//根据roleId查询role,并查询出可以添加的权限信息    @RequestMapping("/findRoleByIdAndAllPermission.do")    public void findRoleByIdAndAllPermission(@RequestParam(name = "id",required = true) String roleId) throws Exception {
//根据roleId查询role Role roel = roleService.findById(roleId); //根据roleId查询可以添加的权限 List
otherPermission = roleService.findOtherPermission(roleId); }

创建对应的方法在service当中

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

(2)RoleService

在这里插入图片描述

Role findById(String roleId) throws Exception ;    List
findOtherPermission(String roleId) throws Exception ;
(3)RoleServiceImpl当中

在这里插入图片描述

@Override    public Role findById(String roleId) throws Exception  {
return roleDao.findById(roleId); }

在这里插入图片描述

(4)对应的IRoleDao

在这里插入图片描述

@Select("select * from role where id = #{roleId}")    Role findById(String roleId);

在这里插入图片描述

在这里插入图片描述

@Select("select * from permission where id not in (select permissionId from role_permission where roleId = #{roleId})")    List
findOtherPermission(String roleId);
(5)完善RoleController当中的findRoleByIdAndAllPermission方法

在这里插入图片描述

//根据roleId查询role,并查询出可以添加的权限信息    @RequestMapping("/findRoleByIdAndAllPermission.do")    public ModelAndView findRoleByIdAndAllPermission(@RequestParam(name = "id",required = true) String roleId) throws Exception {
ModelAndView mv = new ModelAndView(); //根据roleId查询role Role role = roleService.findById(roleId); //根据roleId查询可以添加的权限 List
otherPermission = roleService.findOtherPermission(roleId); mv.addObject("role",role); mv.addObject("permissionList",otherPermission); mv.setViewName("role-permission-add"); return mv; }

3、创建role-permission-add.jsp

在这里插入图片描述

<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
数据 - AdminLTE2定制版

角色管理 添加权限表单

ID 权限名称 权限URL
${permission.id} ${permission.permissionName } ${permission.url}

4、运行测试

在这里插入图片描述

在这里插入图片描述

5、实现添加角色权限

(1)修改role-permission-add.jsp

在这里插入图片描述

在这里插入图片描述

ID 权限名称 权限URL
${permission.id} ${permission.permissionName } ${permission.url}
(2)在RoleController当中创建addPermissionToRole方法

在这里插入图片描述

//给角色添加权限    @RequestMapping("/addPermissionToRole.do")    public void addPermissionToRole(@RequestParam(name="roleId",required = true) String roleId,                                    @RequestParam(name="ids",required = true) String[] permissionids) throws Exception{
roleService.addPermissionToRole(roleId,permissionids); }

在这里插入图片描述

(3)在IRoleService以及对应的实现类当中

在这里插入图片描述

void addPermissionToRole(String roleId, String[] permissionids)throws Exception ;

在这里插入图片描述

@Override    public void addPermissionToRole(String roleId, String[] permissionids) throws Exception {
for(String permissionid:permissionids){
roleDao.addPermissionToRole(roleId,permissionid); } }
(4)在IRoleDao当中

在这里插入图片描述

在这里插入图片描述

@Insert("insert into role_permission(roleId,permissionId) values(#{roleId},#{permissionId})")void addPermissionToRole(@Param("roleId") String roleId,@Param("permissionId")  String permissionId);
(5)完善RoleController

在这里插入图片描述

@Autowired    private IRoleService roleService;    //给角色添加权限    @RequestMapping("/addPermissionToRole.do")    public String addPermissionToRole(@RequestParam(name="roleId",required = true) String roleId,                                      @RequestParam(name="ids",required = true) String[] permissionids) throws Exception{
roleService.addPermissionToRole(roleId,permissionids); return "redirect:findAll.do"; }

之前上面的roleService一直红色,设置一下就没有了

在这里插入图片描述

(6)再次运行代码

在这里插入图片描述

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

转载地址:https://code100.blog.csdn.net/article/details/117215861 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java SSM 项目实战 day08 方法级别的权限操作 服务器端的权限控制(JSR-250注解)(支持表达式的注解)(@Secured)以及页面端的权限控制
下一篇:Android Studio 实现实现学生信息的增删改查 -源代码 四(Servlet + 连接MySql数据库)

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月09日 15时29分22秒