首页 > 编程语言 > 详细

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

时间:2020-12-22 12:33:51      阅读:31      评论:0      收藏:0      [点我收藏+]

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

打印结果如下

技术分享图片

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

技术分享图片

提示没有该页面。

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

传参格式如下:

技术分享图片

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

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

技术分享图片

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

传参格式如下:

技术分享图片

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

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

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

原文:https://www.cnblogs.com/CF1314/p/14172138.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!