1. 程式人生 > >SpringMVC接收物件陣列引數進行封裝

SpringMVC接收物件陣列引數進行封裝

前臺程式碼:注意.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     }