SpringMVC接收对象数组参数进行封装
前台代码:注意.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接收对象数组参数进行封装的更多相关文章
- springMvc接收ajax数组参数,以及jquery复选框选中、反选、全选、全不选
一.复选框选中.反选.全选.全不选 html代码: <input type='checkbox' name='menuCheckBox' value='10' >苹果 <input ...
- 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 ...
- SpringMVC接收集合页面参数
SpringMVC接收集合页面参数 Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctyp ...
- SpringMVC接收复杂集合参数
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是applica ...
- SpringMVC接收json数组对象
最近帮一个妹子解决一个需求,就是前台使用ajax传三个相同的对象,再加一个form表单对象.然后遇到各种问题,终于解决了,@RequestBody接收Json对象字符串 以前,一直以为在Spring ...
- springMVC 接收json字符串参数
/** 前台js拼接了一个数组 myparam = [a,b,c]; 在ajax中直接 {"myparam":JSON.stringify(myparam)} 传入springMV ...
- springmvc 接收对象 滴灌摘要
js 对象 该阵列看起来像 我明白http://blog.csdn.net/baicp3/article/details/12752255本文 我们指示样品棒 data3一个js对象.遗嘱java当代 ...
- springmvc接收List型参数长度
springmvc默认接收list参数长度为256,过长则报越界异常,添加 @InitBinder public void initBinder(WebDataBinder binder) { // ...
- spring接收对象数组实例
JS var param= new Array(); var one= new Object; one.id = '1'; one.name= 'simba1'; param.push(one); v ...
随机推荐
- 解决:return _compile(pattern, flags).search(string) TypeError: expected string or buffer
今天写爬虫,爬取MM图片页面的标题时,遇到了一个问题,上图: 看看我的代码: import urllib import urllib2 import re class JPMSG: def __ini ...
- Webstorm设置Node.js智能提示
这两天在学习Node.js,在Webstorm上进行编辑时发现竟然没有智能提示!所以写这篇文章来帮助大家度过这个坑! File -> Settings -> Languages&F ...
- GEF入门实例_总结_04_Eclipse插件启动流程分析
一.前言 本文承接上一节:GEF入门实例_总结_03_显示菜单和工具栏 注意到app目录下的6个类文件. 这6个文件对RCP应用程序而言非常重要,可能我们现在对这几个文件的理解还是云里雾里,这一节我们 ...
- LeetCode OJ:Largest Number(最大数字)
Given a list of non negative integers, arrange them such that they form the largest number. For exam ...
- uva1315 Crazy tea party(找规律)
题意就是说把顺时针排的1到n换成逆时针排的需要的最少交换步数. 如果是线形的一串数,需要的交换次数就是个冒泡排序的交换次数:n*(n-1)/2,或者用a[i]=(i-1)+a[i-1]推出来. 对于环 ...
- 2017-2018-1 20179215《Linux内核原理与分析》第十周作业
第17章 设备与模块 一.设备类型 除了以上3种典型的设备之外,其实Linux中还有一些其他的设备类型,其中见的较多的应该算是"伪设备".所谓"伪设备",其实 ...
- 安装webpack
首先要安装 Node.js, Node.js 自带了软件包管理器 npm,Webpack 需要 Node.js v0.6 以上支持,建议使用最新版 Node.js. 用 npm 安装 Webpack: ...
- bzoj 2655 calc——拉格朗日插值
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2655 先考虑DP.dp[ i ][ j ]表示值域为 i .选 j 个值的答案,则 dp[ ...
- HDU1272(并查集判图连通)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- xcode修改横屏
1.修改工程属性 2.修改info.plist文件