赞
踩
很多次遇到需要传数组到后台的情况,以前都是用“,”分隔组合成字符串传给后台,然后后台再拆分。这样做可以解决,但是很麻烦,要做几次判断,并且还要考虑传的数据里面有“,”的情况。于是上网搜索了一下,总结有两种方法(以前也搜索过,但是一直都没结果,不知道是不是姿势不对,今天既然有结果了,何不做个记录[微笑])
这种方法是在前端的时候就把数组使用JSON.stringify的方式转换成后台认识的样子,后台就可以直接接收了:
js代码:(这里使用json的提交方式)
var ids = ['1','2'];
$.ajax({
type : 'POST',
url: 'course/delete',
contentType : "application/json" ,
data: JSON.stringify(ids),
success : function(data) {
}
});
传输的数据是这样的:
后台处理:
@RequestMapping(value = "/delete", method = {RequestMethod.POST})
@ResponseBody
public void delete(@RequestBody String[] id) {
for (String string : id) {
System.out.println(string);
}
}
js代码:(这里使用form的提交方式)
var array = ["1", "2"];
$.ajax({
type : 'POST',
url: 'course/delete',
contentType: "application/x-www-form-urlencoded",
data: {"array": array},
success : function(data) {
}
});
传输的数据是这样的:
后台处理:
@RequestMapping(value = "/delete", method = {RequestMethod.POST})
public void delete(HttpServletRequest req) {
String[] array = req.getParameterValues("array[]");
for (String string : array) {
System.out.println(string);
}
}
再次注意:两种post请求的content-type不同!
参考博文:原文
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。