@RequestBody和@RequestParam区别

462 阅读1分钟

@RequestParam

@RequestMapping("/say")
@ResponseBody
@ApiOperation("say方法")
public String say(@RequestParam("age") Integer age, @RequestParam("name") String name){
    return age+" "+name;
}

1、可接收来自于HTTP请求体, 数据格式为application/x-www-form-urlencoded,不可以接收json格式

2、可接收跟在请求url的QueryString,例如http://localhost:8090/springboot?name=cy&age=19 在这里插入图片描述

在这里插入图片描述

@RequestBody

//情况1:使用对象接收参数,但是不用@RequestBody,
//结果:可接收跟在请求url的QueryString
//HTTP请求体, 数据格式为application/x-www-form-urlencoded,json不可接收
@RequestMapping("/say")
@ResponseBody
@ApiOperation("say方法")
public String say(User user){
    return user.age+" "+user.name;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2hqMyvy-1638451177121)(C:\Users\cy\AppData\Roaming\Typora\typora-user-images\image-20211202210813465.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbBdNXcS-1638451177124)(C:\Users\cy\AppData\Roaming\Typora\typora-user-images\image-20211202211104235.png)]

//情况2:使用对象接收参数,且使用注解@RequestBody
//只能接收json格式, @RequestBody也可以解析get方式传递的json
@RequestMapping("/say")
@ResponseBody
@ApiOperation("say方法")
public String say(@RequestBody User user){
    return user.age+" "+user.name;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RHjWktds-1638451177127)(C:\Users\cy\AppData\Roaming\Typora\typora-user-images\image-20211202211338739.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wfKfZtm2-1638451177129)(C:\Users\cy\AppData\Roaming\Typora\typora-user-images\image-20211202211536060.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ARlL0Lhu-1638451177135)(C:\Users\cy\AppData\Roaming\Typora\typora-user-images\image-20211202211638474.png)]

在这里插入图片描述

更多参考 Ajax报错415