推荐最新技术springboot版权限管理(java后台通用权限管理系统(springboot)),采用最新技术架构,功能强大!

注:由于该项目比较老,所以没有采用maven管理,建议下载springboot权限管理系统,对学习和使用会更有帮助。

springboot权限管理系统介绍地址:https://blog.csdn.net/zwx19921215/article/details/97806078

springboot权限管理系统初级版下载地址:http://zyshare.cn/resource/detail/3

springboot权限管理系统高级版下载地址:http://zyshare.cn/resource/detail/7

springboot个人博客系统:https://blog.csdn.net/zwx19921215/article/details/102665020

前台js

//打开菜单窗口
function openMenuDialog(){var selected = $("#list").datagrid('getSelected');if (selected != null) {$("#id").val(selected.id);queryMenus(selected.id);$("#menuWindow").window("open");} else {$.messager.alert('提示', "未选择数据!"); }
}
//角色-菜单信息入库
function ajaxSubmit(rid,idstr){$.post("${ctx}/roleMenu/save.jhtml",{"roleId":rid,"ids":idstr},function(obj){$.messager.alert('提示',obj.msg);$("#menuWindow").window('close');},'json');
}
<!-- ztree -->
<script type="text/javascript">
var tree = "";
var setting = {check : {chkboxType:{"Y":"ps","N":"ps"},//勾选checkbox对于父子节点的关联关系chkStyle:"checkbox",enable : true  //是否复选框},//数据data : {simpleData : {enable : true}}
};
//查询菜单信息
function queryMenus(roleId){$.post('${ctx}/role/treedata.jhtml', {'roleId':roleId}, function(zNodes) {for (var i = 0; i < zNodes.length; i++) {if (zNodes[i].isParent) {} else {//zNodes[i].icon = "${ctxStatic}/images/532.ico";//设置图标}}tree = $.fn.zTree.init($("#tree"), setting, zNodes);tree.expandAll(true);//全部展开//var nodes = treeObj.getNodes();}, 'json');
}
//获取选中节点
function onCheck(){var rid = $("#id").val();var treeObj=$.fn.zTree.getZTreeObj("tree");var nodes=treeObj.getCheckedNodes(true);var ids = new Array();for(var i=0;i<nodes.length;i++){//获取选中节点的值ids.push(nodes[i].id);// v+=nodes[i].id + ",";//alert(nodes[i].id); }ajaxSubmit(rid,ids);
}
</script>

后台:action

@RequestMapping(value = "/treedata.jhtml")@ResponseBodypublic String treedata(HttpServletRequest request, Model model) {DynamicParams params = new DynamicParams(request);List<Map<String, Object>> mapList = Lists.newArrayList();params.put("allMenu", "allMenu");List<Menu> list = menuManager.findMenuList(params);List<RoleMenu> roleMenus = roleMenuManager.findList(params);for(int i=0;i<list.size();i++){Menu e = list.get(i);Map<String, Object> map = Maps.newHashMap();map.put("id", e.getId());map.put("pId", e.getParentId()!=null?e.getParentId():0);map.put("name", e.getName());for(RoleMenu roleMenu:roleMenus){if(roleMenu.getMenuId()==e.getId()){map.put("checked", true);}}mapList.add(map);}return toJson(mapList);}

service

public List<Menu> findMenuList(DynamicParams params) {List<Menu> menus = new ArrayList<Menu>();if ("allMenu".equals(params.getString("allMenu"))) {menus = menuDao.findList(params);} else {// 通过用户查询角色List<UserRole> userRoles = userRoleDao.findList(params);// 通过角色查询菜单List<RoleMenu> roleMenus = new ArrayList<RoleMenu>();if (userRoles != null && userRoles.size() > 0) {for (UserRole userRole : userRoles) {params = new DynamicParams();if (userRole != null) {if (userRole.getRoleId().equals(params.getString("rid"))) {break;}params.put("roleId", userRole.getRoleId().toString());List<RoleMenu> rms = roleMenuDao.findList(params);for (RoleMenu roleMenu : rms) {roleMenus.add(roleMenu);}}}}// 查询菜单信息for (RoleMenu roleMenu : roleMenus) {if (roleMenu != null) {Menu menu = menuDao.find(roleMenu.getMenuId());if(menu!=null){menus.add(menu);}}}menus = removeDuplicate(menus);Collections.sort(menus);}return menus;}/*** 去除菜单中重复项* * @param list* @return*/private List<Menu> removeDuplicate(List<Menu> list) {List<Menu> result = new ArrayList<Menu>();Set<Long> menuIds = new HashSet<Long>();for (int i = 0; i < list.size(); i++) {Menu m = list.get(i);if (m != null && menuIds.add(m.getId())) {result.add(m);}}return result;}

springmvc ztree 实现权限菜单的展示相关推荐

  1. SpringMVC+ZTree实现树形菜单权限配置

    计划在开源项目里加入权限配置的功能,打算加入zTree实现树形结构. Team的Github开源项目链接:https://github.com/u014427391/jeeplatform 欢迎sta ...

  2. android ztree,ztree实现权限功能(横向显示)

    最近在做权限功能的时候,采用的ztree实现的,但是产品要求最后一层的权限节点要横向显示.开始在网上找的解决方案是用css样式把最后一层的display设置为inline.在我本地电脑上看了下.效果不 ...

  3. Spring Security 实现动态权限菜单方案(附源码)

    点击关注公众号,实用技术文章及时了解 系统权限管理 1.前言 在实际开发中,开发任何一套系统,基本都少不了权限管理这一块.这些足以说明权限管理的重要性.其实SpringSecurity去年就学了,一直 ...

  4. maven 构建 springmvc + spring security 权限控制示例

    2019独角兽企业重金招聘Python工程师标准>>> maven 构建 springmvc + spring security 权限控制示例. 介绍 :Spring Securit ...

  5. Shiro 整合SpringMVC 并实现权限管理,登录和注销

    Shiro 整合SpringMVC 并且实现权限管理,登录和注销 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring S ...

  6. 简洁经常使用权限系统的设计与实现(一):构造权限菜单树的N(Ngt;=4)种方法

    权限系统.Web开发常见标准子系统之中的一个.结合自己的一些思考和实践,从本篇開始权限系统的设计与实现之路. 近期,重构了项目的权限菜单构造过程,向前端返回json格式的权限树. 这一篇.仅仅是大致介 ...

  7. SpringBoot+JPA+thymeleaf 菜单分级展示

    Control List<PRPSPOWER> prpspowers= powerService.getPowerByUserCode(usercode);for (int i = 0; ...

  8. Vue 权限菜单(动态路由)详解

    今天记录一下Vue的权限菜单(动态路由),在我们写后台的时候用的比较多,Vue的权限菜单分两种,一种是通过本地进行,根据账号的权限进行筛选出可用的权限,组合菜单并在页面上渲染显示,另一种是根据登录的账 ...

  9. Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理

    Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理 一.安装后台框架ui 二.安装权限管理扩展 三.实现权限菜单管理 一.安装后台框架ui composer require dmstr/yii ...

最新文章

  1. 基于OpenCV的透视图转化为不同平面
  2. matlab中rat=1函数,matlab中的format rat是什么意思
  3. 推荐一本DD刚撸完的书,顺便送一波!
  4. 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
  5. 服务器响应时延,服务器响应时延
  6. (24)2-9-9-12分页(上)
  7. 三行代码让你的博客访问量上百万
  8. SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
  9. 32岁武汉硕士毕业4年后重新高考,考上本硕需再读8年:“不是一时冲动”
  10. 这几道 Redis 面试题都不懂,怎么拿 Offer?
  11. mysql数据库代码_【代码总结】MYSQL数据库的常见操作
  12. 2016级算法第二次上机-F.ModricWang's Number Theory II
  13. excel去重_数据处理之EXCEL的高效技巧分享
  14. Parallels Desktop:pd虚拟机 17 for mac
  15. 冲压模板自动标注LISP_自动标注.LSP
  16. 项目管理十大知识领域之间的关系
  17. 分数加减法—两个分数的加减法
  18. 解决CentOS小数字键盘失效,按NumLock无效的方法
  19. 转移操作和占用操作主机
  20. 配合屏幕录像专家,又小又清晰!

热门文章

  1. SVN:This client is too old to work with working copy…解决方法
  2. 【CentOS 7笔记4】,两种修改密码方式#
  3. 记一次小程序富文本的小小优化
  4. 怎么查看Beyond Compare所有会话日志消息
  5. javascript数组中数字和非数字下标的区别
  6. 最新完整版PHP配置文件翻译
  7. oracle备份磁盘头,oracle asm 磁盘头数据以及备份与恢复基础篇(2)
  8. 项目中git远程地址修改
  9. 三星Note2 行货 水货 型号版本
  10. Java正則表達式詳解