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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM