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”%>
<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开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
知其然不知其所以然,大厂常问面试技术如何复习?
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的大量技术点且讲解的非常深入
…(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)]