前端代码如下,传递一个数组,后台用List<String>接收:
var arrayData = [];
arrayData.push("xxx");
arrayData.push("yyy");
$.post(url,{arrayData : arrayData},function(data,status) {
//do something
});
后台代码如下:
@RequestMapping("test")
@ResponseBody
public Message test(@RequestParam(value="arrayData[]") List<String> arrayData){
//do something
return data;
}
这里有两点需要注意:
- 使用注解@RequestParam
- 注解的参数值中,要加上[ ]
需要注意的是:如果arrayData只有一个值,并且这个值中有逗号,例如:
arrayData.push("xxx,yyy")
这样的数据,后台接收的时候,list中会有两个元素,分别是"xxx"和"yyy"
如果部署arrayData有多个值,例如:
arrayData.push("xxx,yyy")
arrayData.push("aaa,bbb")
这样的数据,后台接收的时候,不会被拆分开,也就是说list中会有两个元素,分别是“xxx,yyy”和“aaa,bbb”;
所以,如果是自己拼接的数据,那么尽量不要用逗号;如果要传的数据本身如此,那么可以先将逗号替换为其他字符,然后再后台接收的时候,再换回来。