zoukankan      html  css  js  c++  java
  • SpringBoot @ResponseBody、@RequestBody和@RequestParam 基本介绍

    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

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

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

    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    改进ls的实现(课下作业)
    stat命令的实现-mysate
    (选做)实现mypwd
    2019-2020-1 20175209 20175213 20175214 实验五 通讯协议设计
    2019-2020-1 20175209 20175213 20175214 实验四 外设驱动程序设计
    2019-2020-1 20175209 20175213 20175214 实验三 并发程序
    2019-2020-1 20175209 20175213 20175214 实验三 并发程序
    2019-2020-1 20175209 20175213 20175214 实验一 开发环境的熟悉
    2018-2019-2 20175213实验五 《网络编程与安全》实验报告
    2018-2019-2 20175213实验四 《Android开发基础》实验报告
  • 原文地址:https://www.cnblogs.com/CF1314/p/14172138.html
Copyright © 2011-2022 走看看