前台代码:注意.contentType : "application/json; charset=utf-8",必须要设置,只有这样SpringMVC才认识这个json数组参数
1 function saveRole() { 2 /* 获取所有勾选的节点 */ 3 var treeObj = $.fn.zTree.getZTreeObj("treeDemo"); 4 var nodes = treeObj.getCheckedNodes(true); 5 6 /* 获取选中的角色id */ 7 var roleId = $(".selector").attr("roleId"); 8 var roleMenusArray = [];//对象数组 9 var roleMenu; 10 for ( var node in nodes) {//循环所有选中的节点 11 roleMenu = new Object();//初始化对象 12 roleMenu.roleId = roleId;//角色id 13 roleMenu.menuId = nodes[node].id;//菜单id 14 roleMenusArray.push(roleMenu);//放入数组 15 } 16 var roleMenus = JSON.stringify(roleMenusArray);//将数组转换为json数组字符串 17 18 /* 发送异步请求进行权限修改 */ 19 $.ajax({ 20 type : "post", 21 url : "${ctx}/sys/updateRoleMenu.html", 22 data : roleMenus, 23 contentType : "application/json; charset=utf-8", 24 dataType : "json", 25 success : function(data) { 26 layer.open({ 27 content : data.msg, 28 offset : [ 100, 400 ], 29 icon: 6 30 }); 31 }, 32 error : function() { 33 alert("error"); 34 } 35 }) 36 console.log(nodes) 37 }
后台代码:
1 @RequestMapping(value = "/updateRoleMenu.html", method = RequestMethod.POST, 2 produces = "text/html;charset=UTF-8;") 3 @ResponseBody 4 public String updateRoleMenu(@RequestBody List<SysRoleMenu> list, HttpServletRequest request, 5 HttpServletResponse response) { 6 MsgVo msgVo = new MsgVo() ; 7 try { 8 if (list != null && list.size() > 0) { 9 for (SysRoleMenu sysRoleMenu : list) { 10 sysRoleMenu.setId(commonUtil.getUUID()) ; 11 } 12 13 // 先删除以前的 14 sysRoleMenuService.deleteByRoleId(list.get(0).getRoleId()) ; 15 16 // 添加用户重新赋予的权限 17 boolean res = sysRoleMenuService.batchAddByList(list) ; 18 19 if (!res) { 20 msgVo.setStatus(500) ; 21 msgVo.setMsg("修改菜单权限失败!") ; 22 } else { 23 msgVo.setStatus(200) ; 24 msgVo.setMsg("修改菜单权限成功!") ; 25 26 // 写入日志 bg 27 SysLog sysLog = new SysLog() ; 28 sysLog.setId(commonUtil.getUUID()) ; // id 29 sysLog.setLogId(commonUtil.getUUID()) ; // 主键 30 sysLog.setLogType(GLOBAL_CONSTANT.sys_log_column1[1]) ;// 日志类型 31 sysLog.setLogTitle("系统管理/角色管理") ;// 功能标题 32 sysLog.setLogUrl(commonUtil.getRequestURL(request, response)) ; // url地址 33 sysLog.setLogMethod(commonUtil.getMethod(request, response)) ; // 提交方法 34 sysLog.setCreateBy(request.getSession().getAttribute("userName").toString()) ; // 创建人 35 sysLog.setCreateDate(DateUtil.getcurrentDate()) ; // 创建时间 36 sysLog.setLogContent("系统用户---->>" 37 + request.getSession().getAttribute("userName").toString() 38 + "修改菜单权限,时间---->>" + DateUtil.getCurrentDate()) ;// 操作日志的内容 39 sysLog.setRemarks("") ; // 备注 40 sysLog.setLogError("") ; 41 sysLogservice.insert(sysLog) ; 42 // 写入日志 ed 43 44 } 45 } 46 } catch (Exception e) { 47 e.printStackTrace() ; 48 } 49 return jsonUtil.objToJson(msgVo) ; 50 }