SpringMVC接收物件陣列引數進行封裝
阿新 • • 發佈:2018-12-31
前臺程式碼:注意.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 }