SpringBoot @ResponseBody、@RequestBody和@RequestParam 基本介绍

这三个注解主要用于前后端分离架构中 SpringBoot 接收或者传输特定格式数据,现在重新捋一遍。

1、@ResponseBody

位置:注解在方法头上

作用:将方法的返回值以 json/xml 的数据格式返回给客户端,如果是JavaBean对象,调用 getxxx()方法获取属性值,如果是 map集合,调用 get(key)方法获取属性值,然后以键值对的方式转成 json字符串

@GetMapping(value = "/findById")
//注解在方法头上,返回 json/xml
@ResponseBody
public Result findById(@RequestParam Long id) {
    User user = userService.findById(id);
    return ResultUtil.success(user);
}

打印结果如下

image-20201222101727590

没有该注解的影响:将返回一个ModelAndView给客户端,即返回视图,常用的场景是跳转 jsp 页面。

image-20201222102639277

提示没有该页面。

2、@RequestBody

位置:注解在方法的形参前

作用:接收 json/xml封装成 JavaBean 对象或者集合,注意 xml格式的支持需要添加额外的依赖。

@GetMapping(value = "/findById")
@ResponseBody
// 注解在形参前,用于接收 json/xml
public Result findById(@RequestBody User testUser) {
    User user = userService.findById(testUser.getId());
    return ResultUtil.success(user);
}

传参格式如下:

image-20201222104730204

注意点:如果是前端页面传参时,需要手动设置 contentType: "application/json",默认的为 ``application/x-www-form-urlencoded`。

没有该注解的影响:JavaBean 对象或集合将无法接收 json/xml

image-20201222111600126

3、@RequestParam

位置:注解在方法的形参前

作用:用于接收基本数据类型及其包装类。 通过value属性指定传参名称,required属性指定是否必传,默认为必传,defaultValue属性指定默认值。

@GetMapping(value = "/findById")
@ResponseBody
//常用于接收基本数据类型及其包装类
public Result findById(@RequestParam(value = "id", required = true, defaultValue = "2") Long id) {
    User user = userService.findById(id);
    return ResultUtil.success(user);
}

传参格式如下:

image-20201222113451359

注意点:只能使用基本数据类型及其包装类接收数据。

没有该注解的影响:该注解不为必写属性,如果想对参数进行限制可使用。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@RequestBody和@RequestParam是Spring MVC中用于处理请求参数的注解。 @RequestBody注解用于将请求体中的数据(比如json或xml格式的数据)转化为Java对象,封装到方法的参数中。这个注解通常用于处理Content-Type不是application/x-www-form-urlencoded编码的请求,例如处理ajax请求时使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [@RequestBody、@RequestParam与@ResponseBody概述](https://blog.csdn.net/weixin_67958017/article/details/129267502)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [@ResponseBody、@RequestBody、@RequestParam的理解](https://blog.csdn.net/czm_ob/article/details/103843518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [SpringBoot @ResponseBody、@RequestBody和@RequestParam 基本介绍](https://blog.csdn.net/plpldog/article/details/119330513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值