对于Springboot获取前台的多个数组,需要在data里面增加对应的属性,让其和后台的参数名保持一致,并且需要追加标签
@RequestParam(value = "XXX", required = false)
具体代码如下所示:
前端Ajax
arr1-5是数组格式,形如['test1','test2']
dataType一定要设置为json格式
$.ajax({
url : '/listSv',
type : 'post',
dataType : 'json',
data: {
corps: arr1,
areahqs: arr2,
regions: arr3,
areas: arr4,
svs: arr5,
},
success : function(data) {
console.log(data);
}
});
后台的java部分
注意参数名需要加上后缀[],形如corps[]
@RequestMapping(value = "/listSv", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> test(@RequestParam(value = "corps[]", required = false) String[] corps,
@RequestParam(value = "areahqs[]", required = false) String[] areahqs,
@RequestParam(value = "regions[]", required = false) String[] regions,
@RequestParam(value = "areas[]", required = false) String[] areas,
@RequestParam(value = "svs[]", required = false) String[] svs) {
Map<String, Object> res = new HashMap<>();
List<SvDto> svList = service.listSv(corps, areahqs, regions, areas, svs);
res.put("svList", svList);
return res;
}
笔者亲测有效,如有问题欢迎与我联系

本文介绍了如何在SpringBoot后台接收前端通过Ajax发送的多个数组参数。关键在于前端使用JSON格式发送数据,后台参数名需加上方括号,如`corps[]`,并使用`@RequestParam`注解进行接收。示例代码包括前端Ajax请求和后台Java处理方法,经作者验证有效。
1万+

被折叠的 条评论
为什么被折叠?



