Springboot参数传递多个数组
对于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;
}
笔者亲测有效,如有问题欢迎与我联系
