首先,json 分为两种类型:
(1) json 对象类型:即前端定义的Content type 为 application/x-www-form-urlencoded等
(2) json字符串类型:即前端定义的Content type 为 application/json
juqery的ajax请求方法中contentType属性:
当前端定义为 application/x-www-form-urlencoded 时,后台的接收如下:
@ResponseBody
@RequestMapping(value = "/submitApply", method = RequestMethod.POST)
public Result applyFor(@RequestParam SubmitApplyVO submitApplyVO ){}
这里使用的参数接收注解是:@RequestParam 用来接收此类型的json参数正常。
当前段定义为 application/json 时,后台的接收如下:
@ResponseBody
@RequestMapping(value = "/submitApply", method = RequestMethod.POST)
public Result applyFor(@RequestBody SubmitApplyVO submitApplyVO){}
这里使用的参数接收注解是:@RequestBody 可以正常接收json。
当前端使用form来提交post请求时:
@ResponseBody
@PostMapping(value = "/saveFeedback")
public void saveFeedback(FeedbackDto dto) {
feedbackService.saveFeedback(dto);
}
可以直接用Java对象来接收参数,
PS:当前端定义为 application/x-www-form-urlencoded 时,使用Java对象依然可以接收参数