springmvc ztree 实现权限菜单的展示
生活随笔
收集整理的這篇文章主要介紹了
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 实现权限菜单的展示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js动态增加行 删除行
- 下一篇: 空调制热半天没反应怎么回事(如何选择空调