@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
@RequestParam、@RequestBody、@PathVariable区别和案例分析的更多相关文章
- @PathVariable @RequestParam @RequestBody 的区别
转载自:@RequestParam @RequestBody @PathVariable 等参数绑定注解详解 简介: handler method 参数绑定常用的注解,我们根据他们处理的Request ...
- 【转】@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
@RequestParam @RequestBody @PathVariable 等参数绑定注解详解 2014-06-02 11:24 23683人阅读 评论(2) 收藏 举报 目录(?)[+] 引言 ...
- 11.@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用: 简介: handler method ...
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解(转)
引言: 接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用: 简介: han ...
- (转)@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
引言: 接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用: 简介: han ...
- springmvc @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
简介: handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型) A.处理requet uri 部分(这里指uri templat ...
- 转载:@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
转载自:https://blog.csdn.net/walkerjong/article/details/7946109#commentBox 因为写的很好很全,所以转载过来 引言:接上一篇文章, ...
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
文章主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用. 简介: handler method 参数绑定常用的注解,我们根据他们处理的Request ...
- @RequestBody、@RequestParam、@PathVariable区别与使用场景
由于项目是前后端分离,因此后台使用的是spring boot,做成微服务,只暴露接口.接口设计风格为restful的风格,在get请求下,后台接收参数的注解为RequestBody时会报错:在post ...
随机推荐
- C++ //构造函数的分类及调用 //分类 // 按照参数分类 无参构造函数(默认构造) 有参构造函数 //按照类型分类 普通构造 拷贝构造
1 //构造函数的分类及调用 2 //分类 3 // 按照参数分类 无参构造函数(默认构造) 有参构造函数 4 //按照类型分类 普通构造 拷贝构造 5 6 #include <iostream ...
- JAVA的一般输入输出 和 快速输入输出 (BufferedReader&BufferedWrite)(转载)
1.JAVA的一般输入输出 和 快速输入输出 (BufferedReader&BufferedWrite) 摘要 本文主要介绍快速输入输出, 文中提到了几个IO类,这里推荐使用Buffered ...
- 记客户端出现Connect reset问题排查。
客户访问我们地址出现Connect reset. 网上查询说是服务端关闭,客户端还在读,就会出现Connect reset. 我们就排查为什么服务端会关闭. 网络的同事说收到了客户端的信息,但是被服务 ...
- SpringBoot开发九-生成验证码
需求介绍-生成验证码 先生成随机字符串然后利用Kaptcha API生成验证图片 代码实现 先在pom.xml引入 <dependency> <groupId>com.gith ...
- java8-stream常用操作(1)
前言 java8的Stream 流式操作,用于对集合进行投影.转换.过滤.排序.去重等,更进一步地说,这些操作能链式串联在一起使用,类似于 SQL 语句,可以大大简化代码.下面我就将平时常用的一些st ...
- GET请求与POST请求详解
一.GET请求 常用于获取服务器数据.常见的发起GET请求的方式有:url.href.src.form. 二.GET请求的格式 例子:index.php?userName=harry&pass ...
- wpf toggleSwitch 的只读属性
xml code --------------------------------------------- <Page x:Class="UWPDemo.MainPage" ...
- spring boot应用常用配置
pom.xml <!--自动打包--> <plugin> <groupId>org.springframework.boot</groupId> < ...
- 回调与Promise
Promise 对象就是用于表示一个异步操作的最终状态(成功或失败).它的流程就是在什么状态下需要执行什么样的操作. resolve简单理解就是一步操作执行成功后的回调函数 then是Promise对 ...
- Spring Boot +Vue 项目实战笔记(一):使用 CLI 搭建 Vue.js 项目
前言 从这篇文章开始,就进入真正的实践了. 在前端项目开发中,我们可以根据实际情况不同程度地使用 Vue.利用 Vue CLI(或写成 vue-cli,即 Vue 脚手架)搭建出来的项目,是最能体现 ...