zoukankan      html  css  js  c++  java
  • 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     }
  • 相关阅读:
    ectouch第四讲 之缓存文件的生成
    ectouch第三讲之加载调用机制
    Ubuntu 16.04下安装sublime Text的插件
    有关于Git操作(持续更新)
    MongoDB简单查询语句<平时使用语录,持续更新>
    Ruby小白入门笔记之<Rubymine工具的快捷键>
    Ruby小白入门笔记之 <Gemfile 文件>
    Ubuntu 16.04安装、卸载mysql及怎么使用SQL常用操作语句
    Git中.gitignore忽略文件(maven项目)
    Git入门之常用命令(转载阮一峰老师)
  • 原文地址:https://www.cnblogs.com/xujingyang/p/7325905.html
Copyright © 2011-2022 走看看