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;
}

笔者亲测有效,如有问题欢迎与我联系

经验分享 程序员 微信小程序 职场和发展