对于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;
}
笔者亲测有效,如有问题欢迎与我联系