• 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

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

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

    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    SGU 271 Book Pile (双端队列)
    POJ 3110 Jenny's First Exam (贪心)
    HDU 4310 Hero (贪心)
    ZOJ 2132 The Most Frequent Number (贪心)
    POJ 3388 Japanese Puzzle (二分)
    UVaLive 4628 Jack's socks (贪心)
    POJ 2433 Landscaping (贪心)
    CodeForces 946D Timetable (DP)
    Android Studio教程从入门到精通
    Android Tips – 填坑手册
  • 原文地址:https://www.cnblogs.com/CF1314/p/14172138.html
Copyright © 2020-2023  润新知