给角色分配菜单的功能后台代码的编写 | 学习笔记

简介: 快速学习给角色分配菜单的功能后台代码的编写

开发者学堂课程【使用 Spring Data Redis+zTree 实现授权模型的设计与思考给角色分配菜单的功能后台代码的编写学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/745/detail/13181


给角色分配菜单的功能后台代码的编写


内容介绍:

一、给角色分配菜单的功能后台代码

二、补充


一、给角色分配菜单的功能后台代码

提交后台程序的方法:module保存

*给角色分配菜单的功能

*@return

*@throws Exception

*/

@Action( "roleAction_module")

public string module( ) throws Exception {

return “alist”  返回值

添加的原因是添加保存之后,将数据分配完成后,重新跳转到角色的跳转页面,如果这么写就相当于跳转到运营。

37 @Results({ @Result(name = "alist", type = "redirectAction" , location = "roleAction _list")})返回到 alist,返回值是redirectAction" location = "roleAction _list 表示请求角色分页列表的方法,返回alist都会重定向到Alist这个方法,

//接收前端页面提交的数据

// model 模型驱动封装id值,选择属性驱动的方式封装勾选的菜单的 id 集合串

//角色的 id 值

String id = model. getId();

return "alist";

private String moduleIds;|  副id

可以提供该属性的get方法,通过属性驱动的方式就可以将属性驱动到,

//勾选的菜单的id集合串

return "alist";

private String moduleIds;

public String getModuleIds() {

屏幕截图Ctrl + Alt+ A

return moduleIds;

public void setModuleIds(String moduleIds) {

this . moduleIds = moduleIds;

程序,目的是给角色分配菜单,

//先把角色对象查询到

//再把菜单的对象查询到

//把菜单对象设置到角色的set集合中,含义:让角色拥有了这些菜单

//更新角色.

以上操作就更改了数据库

//先把角色对象查询到

Role role = roleService.get(id);

//再把菜单的对象查询到

菜单是多个菜单,假如一个个查询就比较慢,可以先进行遍历

//通过, 进行切割

String[] mids = moduleIds.split(",");

因为前段是将数据编成逗号传递过来的,所以先进行切割,切割数组,

for (String mid : mids) {  就可以查出菜单对象,

//再把菜单的对象查询到

Module module = moduleService. get(mid);

//把菜单对象设置到角色的set集合中,含义:让角色拥有了这些菜单

role.getModules() .add(module); 相当于将菜单对象加到集合中,数据就添加完成了

roleService. save0rUpdate(role);

return "alist";

程序出现了一个逻辑性的bug

@Action(" roleAction_ module")

public

String

module()

throws

Exception {

0课时3: zTree插件的入门程序

接收前端页面提交的数据

// model 模型驱动封装id值,选择属性驱动的方式封装勾选的菜单的id集合串

String id = model. getId();

先把角色对象查询到

Role role = roleService. get(id);

//通过,进行切割

String[] mids = moduleIds.split(",");

For (String mid : mids) {

//再把菜单的对象查询到

Module module = moduleService . get(mid);

//把菜单对象设置到角色的set集合中,含义:让角色拥有了这些菜单

role . getModules() .add(module);

//更新角色

roleService. save0rUpdate(role);

return "alist";


二、补充

代码中勾选了一些角色菜单,拿到之后装到集合中,装了多少就相当于选择了多少,角色原来是拥有一些菜单的,所以选择的东西相当于在原来的基础上有追加了一些东西,所以用户可能将之前选中的菜单又取消了,取消掉之后意味着集合中就不存在这些菜单了,点击系统管理,角色管理,选中之后,点击菜单,结果如下

image.png

现在选中统计分析以下的几个内容,然后取消掉委托管理,所以运行后应该存在统计分析的几个复选框,并且不会显示取消的几个菜单,运行之后,跳转到非页列表,程序没有报错,勾选之后点击菜单,发现取消掉的几个委托管理,发票管理和财务管理都还存在

image.png

造成的原因就是直接向原来的集合中追加这些菜单,但已经取消掉了,所以module应该从这些集合中将这些菜单剪掉,然后添加新的。

解决思路有两种

(1)//清空role对象的set集合

role . getModules() .clear();

(2)//第二种方式: new set集合,把菜单存入到新的set集合中,把set集合设置给role对象

跟第一种类似,需要什么集合就装什么集合,然后重新更新这种方式,

将之前拥有的全部都清掉,然后这次选择什么 重新分配就好了,

image.png

重新刷新,选择系统管理,角色管理,选择和之前一样的,点击保存之后,勾选菜单,发现没有了。这就是给角色分配代码的一个工程。

image.png

相关文章
|
4月前
若依框架 --- 菜单已分配,无法删除解决
若依框架 --- 菜单已分配,无法删除解决
284 1
|
7月前
|
小程序 NoSQL JavaScript
【易售小程序项目】”我的“界面实现+“信息修改“界面实现+登出账号实现+图片上传组件【基于若依管理系统开发】
【易售小程序项目】”我的“界面实现+“信息修改“界面实现+登出账号实现+图片上传组件【基于若依管理系统开发】
59 0
|
23天前
|
微服务
【若依】 若依框架 删除左侧无用菜单报错 ‘菜单已分配,不允许删除’
【若依】 若依框架 删除左侧无用菜单报错 ‘菜单已分配,不允许删除’
18 2
如何创建一个用户看不到的窗口。
如何创建一个用户看不到的窗口。
|
10月前
|
存储 缓存 小程序
自己动手之小程序自定义登录态维护
谈起小程序开发,想必大家都不会陌生了。众所周知,小程序开发的官方文档是要求开发者需要自行维护登录态的。那么小程序服务端开发的登录态维护大家是如何做的呢?本文适用微信和QQ小程序的自定义登录态维护。
184 0
自己动手之小程序自定义登录态维护
|
网络架构
后台管理系统——角色分配、粘贴地址跳转至404以及角色分配控制按钮权限
角色分配、粘贴地址跳转至404以及角色分配控制按钮权限
54 0
|
Java API 数据库
给角色分配菜单向后台提交数据的分析 | 学习笔记
快速学习给角色分配菜单向后台提交数据的分析
79 0
给角色分配菜单向后台提交数据的分析 | 学习笔记
|
Java 开发者 Spring
给角色分配菜单的需求分析 | 学习笔记
快速学习给角色分配菜单的需求分析
72 0
给角色分配菜单的需求分析 | 学习笔记
|
开发者 Python
修改用户功能实现 | 学习笔记
快速学习 修改用户功能实现
80 0
|
开发者 Python
显示用户功能实现 | 学习笔记
快速学习 显示用户功能实现
68 0