springmvc ztree 实现权限菜单的展示
推荐最新技术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 实现权限菜单的展示相关推荐
- SpringMVC+ZTree实现树形菜单权限配置
计划在开源项目里加入权限配置的功能,打算加入zTree实现树形结构. Team的Github开源项目链接:https://github.com/u014427391/jeeplatform 欢迎sta ...
- android ztree,ztree实现权限功能(横向显示)
最近在做权限功能的时候,采用的ztree实现的,但是产品要求最后一层的权限节点要横向显示.开始在网上找的解决方案是用css样式把最后一层的display设置为inline.在我本地电脑上看了下.效果不 ...
- Spring Security 实现动态权限菜单方案(附源码)
点击关注公众号,实用技术文章及时了解 系统权限管理 1.前言 在实际开发中,开发任何一套系统,基本都少不了权限管理这一块.这些足以说明权限管理的重要性.其实SpringSecurity去年就学了,一直 ...
- maven 构建 springmvc + spring security 权限控制示例
2019独角兽企业重金招聘Python工程师标准>>> maven 构建 springmvc + spring security 权限控制示例. 介绍 :Spring Securit ...
- Shiro 整合SpringMVC 并实现权限管理,登录和注销
Shiro 整合SpringMVC 并且实现权限管理,登录和注销 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring S ...
- 简洁经常使用权限系统的设计与实现(一):构造权限菜单树的N(Ngt;=4)种方法
权限系统.Web开发常见标准子系统之中的一个.结合自己的一些思考和实践,从本篇開始权限系统的设计与实现之路. 近期,重构了项目的权限菜单构造过程,向前端返回json格式的权限树. 这一篇.仅仅是大致介 ...
- SpringBoot+JPA+thymeleaf 菜单分级展示
Control List<PRPSPOWER> prpspowers= powerService.getPowerByUserCode(usercode);for (int i = 0; ...
- Vue 权限菜单(动态路由)详解
今天记录一下Vue的权限菜单(动态路由),在我们写后台的时候用的比较多,Vue的权限菜单分两种,一种是通过本地进行,根据账号的权限进行筛选出可用的权限,组合菜单并在页面上渲染显示,另一种是根据登录的账 ...
- Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理
Yii2.0 后台UI框架以及权限管理扩展实现权限菜单管理 一.安装后台框架ui 二.安装权限管理扩展 三.实现权限菜单管理 一.安装后台框架ui composer require dmstr/yii ...
最新文章
- 基于OpenCV的透视图转化为不同平面
- matlab中rat=1函数,matlab中的format rat是什么意思
- 推荐一本DD刚撸完的书,顺便送一波!
- 写一个迷你版Smarty模板引擎,对认识模板引擎原理非常好(附代码)
- 服务器响应时延,服务器响应时延
- (24)2-9-9-12分页(上)
- 三行代码让你的博客访问量上百万
- SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
- 32岁武汉硕士毕业4年后重新高考,考上本硕需再读8年:“不是一时冲动”
- 这几道 Redis 面试题都不懂,怎么拿 Offer?
- mysql数据库代码_【代码总结】MYSQL数据库的常见操作
- 2016级算法第二次上机-F.ModricWang's Number Theory II
- excel去重_数据处理之EXCEL的高效技巧分享
- Parallels Desktop:pd虚拟机 17 for mac
- 冲压模板自动标注LISP_自动标注.LSP
- 项目管理十大知识领域之间的关系
- 分数加减法—两个分数的加减法
- 解决CentOS小数字键盘失效,按NumLock无效的方法
- 转移操作和占用操作主机
- 配合屏幕录像专家,又小又清晰!