【springmvc】之使用jQuery接收前端传入List对象
前端代码:
<form id="person_add" method="post" action="user">
<table class="table_add">
<tr>
<td>
</td>
<td>name:</td>
<td><input name="name" value=""/></td>
<td>address</td>
<td><input name="address" value=""/></td>
</tr>
<tr>
<td></td>
<td>name:</td>
<td><input name="name" value=""/></td>
<td>address</td>
<td><input name="address" value=""/></td>
</tr>
<tr>
<td></td>
<td>name:</td>
<td><input name="name" value=""/></td>
<td>address</td>
<td><input name="address" value=""/></td>
</tr>
<tr>
<td></td>
<td>name:</td>
<td><input name="name" value=""/></td>
<td>address</td>
<td><input name="address" value=""/></td>
</tr>
<tr align="center">
<td colspan="5">
<a id="menu_submit" href="javascript:onSubmit()">提交</a>
<a id="menu_no" href="javascript:closeDialog()">关闭</a>
</td>
</tr>
</table>
</form>
Controller代码:
@PutMapping
public void addUser(@RequestBody List<Person> persons){
System.out.println(persons.toString());
}
如果后台使用Controller这样接收参数,那么必须传递进来参数如下格式:
[{"name":"1","address":"a1"},{"name":"2","address":"b1"},{"name":"3","address":"c1"},{"name":"4","address":"d1"}]
首先对表单进行序列化,
$.serializeObject = function (form) {
var o = {};
$.each(form.serializeArray(), function (index) {
if (o[this['name']]) {
if ($.isArray(o[this['name']])) {
o[this['name']].push(this['value']);
} else {
o[this['name']] = [o[this['name']], this['value']];
}
} else {
o[this['name']] = this['value'];
}
});
return o;
};
序列化之后的表单是一个对象,通过调用,得到一个对象
var serializeArray = $.serializeObject($("#person_add"));

将对象分解成为我们需要的json字符串,JSON.stringify() 将对象转为字符串
// 计算json内部的数组最大长度,必须要有这一步
for (var item in serializeArray) {
var tmp = $.isArray(serializeArray[item]) ? serializeArray[item].length : 1;
vCount = (tmp > vCount) ? tmp : vCount;
} if (vCount > 1) {
var jsonData2 = new Array();
for (var i = 0; i < vCount; i++) {
var jsonObj = {};
for (var item in serializeArray) {
jsonObj[item] = serializeArray[item][i];
}
jsonData2.push(jsonObj);
}
jsonParams=JSON.stringify(jsonData2);
} else {
jsonParams=JSON.stringify(serializeArray);
};
console.info(jsonParams);
得到的jsonParams就是我们需要的json字符串

通过ajax直接上传即可:
$.ajax({
url: "user",
method: "PUT",
contentType: "application/json; charset=utf-8",
data: jsonParams,
success: function (res) {
alert(res);
}
})
【springmvc】之使用jQuery接收前端传入List对象的更多相关文章
- SpringMVC接收前端传值有哪些方式?
有很多种,比如: 1.通过@RequestParam注解接收请求参数: 2.通过Bean封装,接收多个请求参数 3.通过@ModelAttribute绑定接收前端表单数据 4.通过@PathVaria ...
- (转)springMVC框架下JQuery传递并解析Json数据
springMVC框架下JQuery传递并解析Json数据 json作为一种轻量级的数据交换格式,在前后台数据交换中占据着非常重要的地位.Json的语法非常简单,采用的是键值对表示形式.JSON 可以 ...
- 使用JQuery将前端form表单数据转换为JSON字符串传递到后台处理
一般地,我们在处理表单(form表单哦)数据时,传输对象或字符串到后台,Spring MVC或SpringBoot的Controller接收时使用一个对象作为参数就可以被正常接收并封装到对象中.这种方 ...
- spring MVC 如何接收前台传入的JSON对象数组并处理
spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json 即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...
- spring MVC 如何接收前台传入的JSON对象数组
spring MVC 如何接收前台传入的JSON对象数组 主要方法: (主要用到的包是 net.sf.json 即:json-lib-2.3-jdk15.jar 完整相关jar包: commons- ...
- springMVC框架下JQuery传递并解析Json数据
springMVC框架下JQuery传递并解析Json数据
- MVC应用程序使用jQuery接收Url的参数
在这个练习<MVC应用jQuery动态产生数据>http://www.cnblogs.com/insus/p/3410138.html 中,学会了使用jQuery创建url链接,并设置了参 ...
- 【转】jQuery之前端国际化jQuery.i18n.properties
jQuery之前端国际化jQuery.i18n.properties 基于jQuery.i18n.properties 实现前端页面的资源国际化 jquery-i18n-properties
- 基于JQuery的前端form表单操作
Jquery的前端表单操作: jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...
随机推荐
- 【bug-劫持】深信服劫持
深信服的 HTTP 劫持有办法解决嘛 劫持js 当前页面打开下载地址,chrome是弹出保存窗口不刷新页面的,但劫持了就刷新页面了 连wifi(电信)和4g(联通)都一样
- CF449 (Div. 1简单题解)
A .Jzzhu and Chocolate pro:现在给定一个大小为N*M的巧克力,让你横着或者竖着切K刀,都是切的整数大小,而且不能切在相同的地方,求最大化其中最小的块. (N,M,K<1 ...
- Gym-101673 :East Central North America Regional Contest (ECNA 2017)(寒假自训第8场)
A .Abstract Art 题意:求多个多边形的面积并. 思路:模板题. #include<bits/stdc++.h> using namespace std; typedef lo ...
- xdoj-1243 (费马平方和问题)
1243: CKJ老师爱数学 时间限制: 1 Sec 内存限制: 128 MB提交: 56 解决: 13[提交][状态][讨论版] 题目描述 众所周知,CKJ老师非常热爱数学,他对于方程组的有自己 ...
- xdoj-1057(Lucas定理的证明及其模板)
Lucas定理的证明: 转自百度百科(感觉写的还不错) 首先你需要这个算式: ,其中f > 0&& f < p,然后 (1 + x) nΞ(1 + x) sp+q Ξ ...
- P2467 [SDOI2010]地精部落 (dp+组合数)【扩展Lucas好难不会】
题目链接:传送门 题目: 题目描述 传说很久以前,大地上居住着一种神秘的生物:地精. 地精喜欢住在连绵不绝的山脉中.具体地说,一座长度为N的山脉H可分为从左到右的N段,每段有一个独一无二的高度Hi,其 ...
- HDU2023:求平均成绩
Problem Description 假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量. ...
- IDA*(以The Ratotion Game POJ--2286 UVa1343为例)
IDA*算法实质就是迭代加深搜索和A*算法的结合,通过迭代加深搜索来寻找答案,借由预估函数h()来进行估计与剪枝. 本题主框架如下: ;;maxd++) { ,maxd)) break; } 由1开始 ...
- 实验吧—安全杂项——WP之 flag.xls
点击链接下载文件,是一个xls文件 打开: 需要密码的 下一步,我将后缀名改为TXT,然后搜素关键词“flag”,一个一个查找就可以发现啦~!!!(这是最简单的一种方法)
- 容器(container)
一.容器有哪些 平时我们经常看到各种容器名称:Servlet容器.WEB容器.Java WEB容器.Java EE容器等 二.容器是什么 2-1 容器通常理解就是装东西的,我们这里说技术上的容 ...