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

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

开发者学堂课程【使用 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

相关文章
|
小程序 NoSQL JavaScript
【易售小程序项目】”我的“界面实现+“信息修改“界面实现+登出账号实现+图片上传组件【基于若依管理系统开发】
【易售小程序项目】”我的“界面实现+“信息修改“界面实现+登出账号实现+图片上传组件【基于若依管理系统开发】
113 0
|
4月前
|
搜索推荐
7、自定义工作界面
这篇文章是关于如何自定义Photoshop工作界面的,但具体内容没有在摘要中提供,因此无法给出详细摘要。如果需要了解Photoshop工作界面的自定义方法,包括面板、菜单、快捷键等的个性化设置,建议直接访问博客以获取完整信息。
7、自定义工作界面
|
5月前
|
监控 数据安全/隐私保护
若依修改---功能详解--权限控制,demo超级管理员,可以查看所有功能菜单,zhangsan,登录之后,仅可以查看线索的菜单,不同角色岗位,登录查看的内容不同,若依通过用户管理,角色管理,菜单管理控
若依修改---功能详解--权限控制,demo超级管理员,可以查看所有功能菜单,zhangsan,登录之后,仅可以查看线索的菜单,不同角色岗位,登录查看的内容不同,若依通过用户管理,角色管理,菜单管理控
|
小程序 数据安全/隐私保护
零基础学小程序005---小程序登陆注册功能实现
零基础学小程序005---小程序登陆注册功能实现
|
网络架构
后台管理系统——角色分配、粘贴地址跳转至404以及角色分配控制按钮权限
角色分配、粘贴地址跳转至404以及角色分配控制按钮权限
103 0
|
Java API 数据库
给角色分配菜单向后台提交数据的分析 | 学习笔记
快速学习给角色分配菜单向后台提交数据的分析
给角色分配菜单向后台提交数据的分析 | 学习笔记
|
Java 开发者 Spring
给角色分配菜单的需求分析 | 学习笔记
快速学习给角色分配菜单的需求分析
给角色分配菜单的需求分析 | 学习笔记
|
JSON 运维 小程序
基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)
基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)
247 0
基于云开发创建(小程序云商城,基本页面的创建及动态代码的编写)
|
开发者 Python
修改用户功能实现 | 学习笔记
快速学习 修改用户功能实现
118 0
|
开发者 Python
显示用户功能实现 | 学习笔记
快速学习 显示用户功能实现