前台代码:注意.contentType : "application/json; charset=utf-8",必须要设置,只有这样SpringMVC才认识这个json数组参数

 function saveRole() {
/* 获取所有勾选的节点 */
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getCheckedNodes(true); /* 获取选中的角色id */
var roleId = $(".selector").attr("roleId");
var roleMenusArray = [];//对象数组
var roleMenu;
for ( var node in nodes) {//循环所有选中的节点
roleMenu = new Object();//初始化对象
roleMenu.roleId = roleId;//角色id
roleMenu.menuId = nodes[node].id;//菜单id
roleMenusArray.push(roleMenu);//放入数组
}
var roleMenus = JSON.stringify(roleMenusArray);//将数组转换为json数组字符串 /* 发送异步请求进行权限修改 */
$.ajax({
type : "post",
url : "${ctx}/sys/updateRoleMenu.html",
data : roleMenus,
contentType : "application/json; charset=utf-8",
dataType : "json",
success : function(data) {
layer.open({
content : data.msg,
offset : [ 100, 400 ],
icon: 6
});
},
error : function() {
alert("error");
}
})
console.log(nodes)
}

后台代码:

 @RequestMapping(value = "/updateRoleMenu.html", method = RequestMethod.POST,
produces = "text/html;charset=UTF-8;")
@ResponseBody
public String updateRoleMenu(@RequestBody List<SysRoleMenu> list, HttpServletRequest request,
HttpServletResponse response) {
MsgVo msgVo = new MsgVo() ;
try {
if (list != null && list.size() > 0) {
for (SysRoleMenu sysRoleMenu : list) {
sysRoleMenu.setId(commonUtil.getUUID()) ;
} // 先删除以前的
sysRoleMenuService.deleteByRoleId(list.get(0).getRoleId()) ; // 添加用户重新赋予的权限
boolean res = sysRoleMenuService.batchAddByList(list) ; if (!res) {
msgVo.setStatus(500) ;
msgVo.setMsg("修改菜单权限失败!") ;
} else {
msgVo.setStatus(200) ;
msgVo.setMsg("修改菜单权限成功!") ; // 写入日志 bg
SysLog sysLog = new SysLog() ;
sysLog.setId(commonUtil.getUUID()) ; // id
sysLog.setLogId(commonUtil.getUUID()) ; // 主键
sysLog.setLogType(GLOBAL_CONSTANT.sys_log_column1[1]) ;// 日志类型
sysLog.setLogTitle("系统管理/角色管理") ;// 功能标题
sysLog.setLogUrl(commonUtil.getRequestURL(request, response)) ; // url地址
sysLog.setLogMethod(commonUtil.getMethod(request, response)) ; // 提交方法
sysLog.setCreateBy(request.getSession().getAttribute("userName").toString()) ; // 创建人
sysLog.setCreateDate(DateUtil.getcurrentDate()) ; // 创建时间
sysLog.setLogContent("系统用户---->>"
+ request.getSession().getAttribute("userName").toString()
+ "修改菜单权限,时间---->>" + DateUtil.getCurrentDate()) ;// 操作日志的内容
sysLog.setRemarks("") ; // 备注
sysLog.setLogError("") ;
sysLogservice.insert(sysLog) ;
// 写入日志 ed }
}
} catch (Exception e) {
e.printStackTrace() ;
}
return jsonUtil.objToJson(msgVo) ;
}

SpringMVC接收对象数组参数进行封装的更多相关文章

  1. springMvc接收ajax数组参数,以及jquery复选框选中、反选、全选、全不选

    一.复选框选中.反选.全选.全不选 html代码: <input type='checkbox' name='menuCheckBox' value='10' >苹果 <input ...

  2. springmvc 传递对象数组参数 property path is neither an array nor a List nor a Map

    Spring MVC 3: Property referenced in indexed property path is neither an array nor a List nor a Map ...

  3. SpringMVC接收集合页面参数

    SpringMVC接收集合页面参数 Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctyp ...

  4. SpringMVC接收复杂集合参数

    Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是applica ...

  5. SpringMVC接收json数组对象

    最近帮一个妹子解决一个需求,就是前台使用ajax传三个相同的对象,再加一个form表单对象.然后遇到各种问题,终于解决了,@RequestBody接收Json对象字符串 ​以前,一直以为在Spring ...

  6. springMVC 接收json字符串参数

    /** 前台js拼接了一个数组 myparam = [a,b,c]; 在ajax中直接 {"myparam":JSON.stringify(myparam)} 传入springMV ...

  7. springmvc 接收对象 滴灌摘要

    js 对象 该阵列看起来像 我明白http://blog.csdn.net/baicp3/article/details/12752255本文 我们指示样品棒 data3一个js对象.遗嘱java当代 ...

  8. springmvc接收List型参数长度

    springmvc默认接收list参数长度为256,过长则报越界异常,添加 @InitBinder public void initBinder(WebDataBinder binder) { // ...

  9. spring接收对象数组实例

    JS var param= new Array(); var one= new Object; one.id = '1'; one.name= 'simba1'; param.push(one); v ...

随机推荐

  1. c++中函数参数传递(值传递、指针传递,引用传递)进一步认识

    概念    首先从概念上来说一下这几种函数传参方式及区别:    1.值传递:形参是实参的拷贝,改变函数形参的值并不会影响外部实参的值,这是最常用的一种传参方法,也是最简单的一种传参方法,只需要传递参 ...

  2. 我总结的call()与apply()方法的区别

    [call()与apply()的区别]在ECMAScript中每一个函数都是function类型(是javascript的基本引用类型)的实例,具有一定的属性和方法.call()和apply()则是这 ...

  3. VS2015问题

  4. Linux 线程同步的三种方法(互斥锁、条件变量、信号量)

    互斥锁 #include <cstdio> #include <cstdlib> #include <unistd.h> #include <pthread. ...

  5. 通过 objc_setAssociatedObject alert 和 button关联 及传值

    原文地址 http://blog.csdn.net/lengshengren/article/details/16886915 //唯一静态变量key static const char associ ...

  6. The Sum of 0 for four numbers(拆解加二分思想)

    个人心得:单纯用二分法一直超时,后面发现我的那种方法并没有节省多少时间,后面看了大神的代码,真的是巧妙, 俩个数组分别装a+b,c+d.双指针一个指向最后,从第一个开始想加,加到刚好大于0停止,再看是 ...

  7. LeetCode Maximum Length of Pair Chain

    原题链接在这里:https://leetcode.com/problems/maximum-length-of-pair-chain/description/ 题目: You are given n  ...

  8. js 自定义方法 设置可选参数的方法

    原链接 http://www.cnblogs.com/RightDear/p/3156652.html PHP有个很方便的用法是在定义函数时可以直接给参数设默认值,如: function simue ...

  9. tp中自定义跳转页面

    1.在admin->view下建立public文件夹 2.在public文件夹下建立error.html success.html 3.在项目下公共common ->config.php写 ...

  10. PHP数组编码转换

    因为一些特殊字符的显示效果的原因不得不把习惯的utf-8工程改成了GBK,由于使用了ajax技术,又涉及到了老问题——编码转换. 一些表单验证需要返回json数据,php的json_encode函数只 ...