Java SSM 项目实战 day07用户角色关联操作,添加角色,以及添加权限

return “redirect:findAll.do”;

}

(5)运行测试

重新运行后访问:http://localhost:8888/zheng_ssm_web

在这里插入图片描述

在这里插入图片描述

发现报错证明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定制版

<meta

content=“width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no”

name=“viewport”>

href=“${pageContext.request.contextPath}/plugins/bootstrap/css/bootstrap.min.css”>

href=“${pageContext.request.contextPath}/plugins/font-awesome/css/font-awesome.min.css”>

href=“${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css”>

href=“${pageContext.request.contextPath}/plugins/iCheck/square/blue.css”>

href=“${pageContext.request.contextPath}/plugins/morris/morris.css”>

href=“${pageContext.request.contextPath}/plugins/jvectormap/jquery-jvectormap-1.2.2.css”>

href=“${pageContext.request.contextPath}/plugins/datepicker/datepicker3.css”>

href=“${pageContext.request.contextPath}/plugins/daterangepicker/daterangepicker.css”>

href=“${pageContext.request.contextPath}/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css”>

href=“${pageContext.request.contextPath}/plugins/datatables/dataTables.bootstrap.css”>

href=“${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.css”>

href=“${pageContext.request.contextPath}/plugins/treeTable/jquery.treetable.theme.default.css”>

href=“${pageContext.request.contextPath}/plugins/select2/select2.css”>

href=“${pageContext.request.contextPath}/plugins/colorpicker/bootstrap-colorpicker.min.css”>

href=“${pageContext.request.contextPath}/plugins/bootstrap-markdown/css/bootstrap-markdown.min.css”>

href=“${pageContext.request.contextPath}/plugins/adminLTE/css/AdminLTE.css”>

href=“${pageContext.request.contextPath}/plugins/adminLTE/css/skins/_all-skins.min.css”>

href=“${pageContext.request.contextPath}/css/style.css”>

href=“${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.css”>

href=“${pageContext.request.contextPath}/plugins/ionslider/ion.rangeSlider.skinNice.css”>

href=“${pageContext.request.contextPath}/plugins/bootstrap-slider/slider.css”>

href=“${pageContext.request.contextPath}/plugins/bootstrap-datetimepicker/bootstrap-datetimepicker.css”>

<jsp:include page=“header.jsp”></jsp:include>

<jsp:include page=“aside.jsp”></jsp:include>

角色管理 添加权限表单

  • class=“fa fa-dashboard”> 首页

  • href=“${pageContext.request.contextPath}/role/findAll.do”>角色管理

  • 添加权限表单
  • action=“${pageContext.request.contextPath}/user/addPermissionToRole.do”

    method=“post”>

    class=“table table-bordered table-striped table-hover dataTable”>

    ID 权限名称 权限URL

    <c:forEach items=“${permissionList}” var=“permission”>

    ${permission.id} ${permission.permissionName } ${permission.url}

    </c:forEach>

    保存

    <button type=“button” class=“btn bg-default”

    οnclick=“history.back(-1);”>返回

    Version 1.0.8

    Copyright © 2014-2017 <a

    href=“http://www.itcast.cn”>研究院研发部.

    All rights reserved.

    4、运行测试

    在这里插入图片描述

    在这里插入图片描述

    5、实现添加角色权限
    (1)修改role-permission-add.jsp

    在这里插入图片描述

    在这里插入图片描述

    action=“${pageContext.request.contextPath}/role/addPermissionToRole.do”

    method=“post”>

    class=“table table-bordered table-striped table-hover dataTable”>

    ID 权限名称 权限URL

    <c:forEach items=“${permissionList}” var=“permission”>

    ${permission.id} ${permission.permissionName } ${permission.url}

    </c:forEach>

    (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);

    }

    在这里插入图片描述

    小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

    深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

    因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
    img
    img
    img

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

    如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
    img

    知其然不知其所以然,大厂常问面试技术如何复习?

    1、热门面试题及答案大全

    面试前做足功夫,让你面试成功率提升一截,这里一份热门350道一线互联网常问面试题及答案助你拿offer

    2、多线程、高并发、缓存入门到实战项目pdf书籍

    3、文中提到面试题答案整理

    4、Java核心知识面试宝典

    覆盖了JVM 、JAVA集合、JAVA多线程并发、JAVA基础、Spring原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB 、Cassandra、设计模式、负载均衡、数据库、一致性算法 、JAVA算法、数据结构、算法、分布式缓存、Hadoop、Spark、Storm的大量技术点且讲解的非常深入

    本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

    …(img-04JbA4P2-1711049221653)]
    [外链图片转存中…(img-nOTvy1K9-1711049221654)]

    由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

    如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
    [外链图片转存中…(img-LV1Oz9Wo-1711049221654)]

    知其然不知其所以然,大厂常问面试技术如何复习?

    1、热门面试题及答案大全

    面试前做足功夫,让你面试成功率提升一截,这里一份热门350道一线互联网常问面试题及答案助你拿offer

    [外链图片转存中…(img-IB83HMUJ-1711049221655)]

    2、多线程、高并发、缓存入门到实战项目pdf书籍

    [外链图片转存中…(img-XwWL3zP5-1711049221655)]

    [外链图片转存中…(img-nZ83j5VH-1711049221656)]

    [外链图片转存中…(img-4y5jHXCm-1711049221656)]

    3、文中提到面试题答案整理

    [外链图片转存中…(img-lvb7kD85-1711049221656)]

    4、Java核心知识面试宝典

    覆盖了JVM 、JAVA集合、JAVA多线程并发、JAVA基础、Spring原理、微服务、Netty与RPC、网络、日志、Zookeeper、Kafka、RabbitMQ、Hbase、MongoDB 、Cassandra、设计模式、负载均衡、数据库、一致性算法 、JAVA算法、数据结构、算法、分布式缓存、Hadoop、Spark、Storm的大量技术点且讲解的非常深入

    [外链图片转存中…(img-As0KYL1P-1711049221657)]

    [外链图片转存中…(img-JcHKf7Fo-1711049221657)]

    [外链图片转存中…(img-TmcpDNC3-1711049221657)]

    本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值