@RequestParam、@RequestBody、@PathVariable区别和案例分析

简介: @RequestParam、@RequestBody、@PathVariable区别和案例分析

@RequestParam、@RequestBody、@PathVariable区别和案例分析


一、前言

@RequestParam、@RequestBody、@PathVariable都是用于在Controller层接收前端传递的数据,他们之间的使用场景不太一样,今天来介绍一下!!

二、实体类准备

@Data
public class Test implements Serializable {
    private String id;
    private String name;
    private String state;
    private String createTime;
}

三、@RequestParam

定义

一个请求,可以有多个RequestParam

@RequestParam 接收普通参数的注解 一般与get请求一起使用

@RequestParam(value=“参数名”,required=“true/false”,defaultValue=“如果没有本值为这个参数的值”)

required默认为true,当为false是,才可以使用defaultValue

案例

  @GetMapping("/getDataById")
    public String getDataById(@RequestParam(value = "id",required = false,defaultValue = "1") String id){
        //使用mybatis-plus来根据id查询数据
        Test test = testMapper.selectById(id);
        return test.toString();
        //结果: Test{id='1', name='dd', state='A', createTime='null'}
    }

四、@RequestBody

定义

一个请求,只有一个RequestBody

@RequestBody(required=“true/false”)

@RequestBody:一般来接受请求体中json的注解 一般与post请求一起使用

required默认为true(比传,要不报错)

案例

@PostMapping("/insertData")
    public int insertData(@RequestBody Test test){
        //使用mybatis-plus来插入新数据
        int insert = testMapper.insert(test);
        return insert;
        //结果: 1
    }

五、@PathVariable

定义

一个请求,可以有多个PathVariable

@PathVariable 映射URL绑定的占位符 一般与get请求一起使用

@PathVariable(value=“参数名”,required=“true/false”)

案例

  @GetMapping("/getById/{id}")
    public String getById(@PathVariable String id){
        //使用mybatis-plus来根据id查询数据
        Test test = testMapper.selectById(id);
        return test.toString();
        //结果: Test{id='1', name='dd', state='A', createTime='null'}
    }

六、区别和使用场景

@RequestParam一般在get请求时,参数是一个个的参数时,请求url一般为http://localhost:8089/test/getDataById?id=1

@RequestBody一般在post请求时,参数是一个对象或者集合时,请求一般为json类型的请求体

@PathVariable一般在get请求时,参数是一个个的参数时,更能体现RestFul风格,请求url一般为:http://localhost:8089/test/getDataById/1



相关文章
|
1月前
|
JSON 前端开发 Java
@RequestParam这个注解的作用
@RequestParam这个注解的作用
24 0
|
6月前
|
XML JSON 数据格式
@RequestParam @RequestBody @PathVariable 等参数绑定
@RequestParam @RequestBody @PathVariable 等参数绑定
|
4月前
|
Java API Spring
spring注解中@RequestParam和@PathVariable的区别
spring注解中@RequestParam和@PathVariable的区别
31 0
|
5月前
|
存储 XML JSON
@RequestBody、@RequestParam 、@PathVariable @RequestPart 傻傻分不清
@RequestBody、@RequestParam 、@PathVariable @RequestPart 傻傻分不清
64 0
|
5月前
|
前端开发 Java Spring
方法参数相关属性params、@PathVariable和@RequestParam用法与区别
方法参数相关属性params、@PathVariable和@RequestParam用法与区别
38 0
|
7月前
|
XML JSON Java
【Java用法】@RequestParam、@RequestBody、@ResponseBody和@PathVariable的使用与区别
【Java用法】@RequestParam、@RequestBody、@ResponseBody和@PathVariable的使用与区别
40 0
|
11月前
|
XML SQL JSON
@PathVariable、@RequestBody、@RequestParam、@ResponseBody、@Param的详解和用法
@PathVariable、@RequestBody、@RequestParam、@ResponseBody、@Param的详解和用法
124 0
|
12月前
|
Java API Spring
@RequestParam和@PathVariable的区别
@RequestParam注解获取URL中携带的请求参数的值既URL中“?”后携带的参数,传递参数的格式是:key=value;@PathVariable注解用于获取URL中路径的参数值,参数名由RequestMapping注解请求路径时指定,常用于restful风格的api中,传递参数格式:直接在url后添加需要传递的值即可
104 0
|
12月前
|
前端开发 Java API
@RequestParam怎么使用
@RequestParam怎么使用
|
XML JSON Java
详解@RequestParam和@RequestBody
你好看官,里面请!今天笔者讲的是@RequestParam和@RequestBody。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
378 2
详解@RequestParam和@RequestBody