首页 > 其他分享 >注解@RequestParam和注解@RequestBody的作用

注解@RequestParam和注解@RequestBody的作用

时间:2022-08-31 20:46:54浏览次数:60  
标签:RequestParam userId RequestBody 参数 test 注解

Springboot注解@RequestParam和@RequestBody

  • @RequestParam
    @RequestMapping(value = "test")
    @ResponseBody
    public Object test(@RequestParam Integer userId) {
       return userId;
    }
  1. 用于指定控制器接收参数的名称:如@RequestParam("userId")代表前端必须要传递userId字段才能执行此方法,否则会报400错误。可以接收url参数和请求体参数,一旦加上必须传递对象的参数字段。不能接收application/json类型的请求;

  2. 使用value或name指定接收参数的名称:如@RequestParam(value = "id")或@RequestParam(name = "id"),此时就必须传递id这个请求参数,传递userId或不传都报400错误。也可以使用简便写法:@RequestParam("id")两者效果一样。

  3. 使用defaultValue指定参数的默认值:@RequestParam(defaultValue = "20"),不传递该请求参数,该参数会有默认值;传了该参数则不会使用默认值;注意默认值必须是字符串,即使需要的参数为其他类型,SpringMVC也会自动处理成其他的类型。

    //SpringMVC自动将字符串"20"转换成整形20
    @RequestMapping(value = "test")
    @ResponseBody
    public Object test(@RequestParam(defaultValue = "20") Integer userId) {
       return userId;
    }
  1. 使用required指定参数是否必须,@RequestParam(required = false)代表非必须。默认为true。

  2. 加与不加的区别:加上这个注解前端必须传递相应的参数,否则报400;如:localhost:8080/test 报400错误 ,localhost:8080/test?id=1 才能执行不加前端传与不传相应的参数都不会报错,方法都能执行。

  • @RequestBody
  1. 主要用于接收请求体中的json字符串,所以不能接收GET请求的参数。

  2. 该注解只有一个required属性,用来指定参数是否为必须,默认true。所以使用这个注解的参数就不能任意指定名称了,必须和参数真实名称一致才行。

  3. 当参数为实体类时,会自动封装字段为实体,而@RequestParam没有这个功能。

    @RequestMapping(value = "test")
    @ResponseBody
    public Object test(@RequestBody User user) {
       return user;
    }

image

标签:RequestParam,userId,RequestBody,参数,test,注解
From: https://www.cnblogs.com/fengxiaojie/p/16644274.html

相关文章

  • Java easy_trans字典绑定,Java字典注解绑定
     ================================©Copyright蕃薯耀 2022-08-31https://www.cnblogs.com/fanshuyao/ 一、引入Maven依赖基于<mybatisPlus.version>3.4.3.3</my......
  • SpringBoot使用@Async和@Transactional注解优化接口
    1、业务背景:项目上有一个接口需要按照前端传递的时间段范围修改6个表的数据,接口V1版本开发完成是使用的同步方式全局@Transactional注解的方式去做的,但存在一个问题就......
  • MyBatis常用注解及基本增删改查的注解实现
    MyBatis的常用注解注解可以减少Mapper文件的编写,常用注解如下;@Insert:实现新增@Update:实现更新@Delete:实现删除@Select:实现查询@Result:实现结果集封装@Results:可......
  • jsp_注解和jsp内置对象
    注释  HTML注释:<!-- -->只能注释HTML片段   jsp推荐使用<%-- --%>可以注释所以片段<!--<h1>hello</h1>--><%--System.out.ptintl......
  • 注解
    publicclassWxJwtFilterimplementsFilter{@AutowiredprivateIUcUserServiceuserService;@AutowiredRequestMappingHandlerMappingrequestMappingH......
  • 注解-解析注解以及注解案例
    解析注解在程序中使用(解析)注解:获取注解中定义的属性值​1.获取注解定义的位置的对象(Class,Method,Field)​2.获取指定的注解:getAnnotation(Class)//其实就......
  • Spring内置的字段校验注解
    注解用法适用类型@Null被注解的字段必须为空@NotNull被注解的字段必须不为空@NotBlank带注解的元素不能为null,并且必须至少包含一个非空白字符@N......
  • 初步了解注解
    注解一、内置注解注解用法@Overrite方法重写时,在方法上添加满足重写的语法要求@Deprecated表示该方法已过时@SuppressWarnings编译器去忽略注解中声明......
  • 【博学谷学习记录】超强总结,用心分享。SSM框架的注解开发
    1.MyBatis使用的注解@Select注解:查询操作的,加在声明方法上@Insert注解:插入操作@Update注解:更新操作@Delect注解:删除操作@Param注解:作用是给参数......
  • 注解-自定义注解-属性定义以及元注解
    自定义注解-属性定义属性:接口中的抽象方法要求:1、属性的返回值类型基本数据类型String枚举注解......