- 前台发送ajax请求,用json字符串格式向后台传请求参数,那么后台需要采用@RequestBody来处理请求的json格式数据,将json数据转换为java对象,否则springmvc就不能解析导致传空参的结果
- 一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。而 @ResponseBody就可以理解成将java的对象转换成json字符串的格式给前端解析(json数据格式解析比较简单)
总结:客户端请求的数据是json字符串,springmvc不能直接解析,加@requestBody解析成对象,客户端请求的是key/value的拼接不需要加@requestBody,@responseBody返回json字符串,如果是ajax请求,我们想到得到json对象的话(为了方便根据key取value)在ajax中增加如下:dataType: "json"
(3)这样就会出现400错误,服务器无法理解这个请求 @requestbody的含义是在当前对象获取整个http请求的body里面的所有数据,因此spring就不可能将这个数据强制包装成Course或者List类型,并且从@requestbody设计上来说,只获取一次就可以拿到请求body里面的所有数据,就没必要出现有多个@requestbody出现在controller的函数的形参列表当中