浅谈:@RequestBody,@ResponseBody 和 @RequestParam
1. @RequestBody
@RequestBody:主要用来接收前端传递给后端的json
字符串中的数据的(请求体中的数据)
GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
使用注解@RequestBody可以将body里面所有的json数据传到后端,后端再进行解析。
使用场景:前端请求为POST,数据格式为:application/json时,使用@RequestBody
例:
axios.post("/news/newsAdd.do",this.news).then((response)=>{
//隐藏新增窗口
this.dialogFormVisible = false;
//判断后台返回的flag值,true表示添加操作成功,false为添加操作失败
if(response.data.flag){
this.$message({message: response.data.message, type: 'success'});
this.init();
}else{
this.$message.error(response.data.message);
}
})
@RequestMapping("/newsAdd")
@ResponseBody
public ResponseResult newsAdd(@RequestBody News news)
{
//创建返回消息字符串
String message;
try {
//调用方法新增
newsService.newsAdd(news);
message="新增成功!";
//返回结果对象
return new ResponseResult(true,message);
}catch (Exception e) {
e.printStackTrace();
message="新增失败!";
//返回结果对象
return new ResponseResult(false,message);
}
}
2. @ResponseBody
@ResponseBody: 将java
对象转为json
格式的数据,通常用来返回JSON
数据或者是XML
数据。作用在方法上,通过Response响应给客户端。
前台请求过去的json字符串,在使用@RequestBody注解后 被HttpMessageConverter,转换成对应的java对象,然后我们再用@ResponseBody注解,将java对象 以特定的格式(通常都是json)相应给浏览器。
深入了解@ResponseBody注解原理:
3. @RequestParam
@RequestParam: 接受简单类型的属性,也可以接受对象类型。接收的参数是来自requestHeader
中,即请求头。通常用于GET
请求,@RequestParam也可用于POST、DELETE等请求,但是如果前端使用的是json
字符串来传值的话,发送请求会报错,后台接收不到值,为NULL。
配置参数:
- required 表示是否必须,默认为 true,必须。
- defaultValue 可设置请求参数的默认值。
- value 为接收url的参数名(相当于key值)。
语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
使用场景: 发送GET请求,url中的?后面添加参数时,简单类型属性。
注意:一个请求,只能有一个RequestBody; 一个请求,可以有多个RequestParam
例1:
//GET请求,传ID
axios.get("/news/DeleteById.do?id="+row.id).then((res)=>{
if (res.data.flag)
{
this.$message({
message: res.data.message,
type: 'success'
});
this.init();
}else {
this.$message({
message: res.data.message,
type: 'error'
});
}
})
@RequestMapping("/DeleteById")
@ResponseBody
public ResponseResult DeleteById(@RequestParam Integer id)
{
String message;
try {
//调用方法删除
newsService.DeleteById(id);
message="删除成功!";
//返回结果对象
return new ResponseResult(true, message);
}catch (Exception e) {
e.printStackTrace();
message="删除失败!";
//返回结果对象
return new ResponseResult(false,message);
}
}
列2:
init(){
var params={pageSize:this.pageSize,
currentPage:this.currentPage,
newsTitle:this.newsTitle,
newsContent:this.newsContent,
};
axios.get("/news/findPage.do",{params:params}).then((response)=>{
this.tableData=response.data.data.newsList;
this.pageSize=response.data.data.pageInfo.pageSize;
this.total=response.data.data.pageInfo.total;
});
}
/**
* 根据条件分页查询
* @param pageSize
* @param currentPage
* @param newsTitle
* @param newsContent
* @return
*/
@RequestMapping("/findPage")
@ResponseBody
public ResponseResult findPage(@RequestParam Integer pageSize,
@RequestParam Integer currentPage,
@RequestParam String newsTitle,
@RequestParam String newsContent)
{
略......
}
浅谈:@RequestBody,@ResponseBody 和 @RequestParam的更多相关文章
- 浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别
浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别 Spring 2.5 版本新增了注解功能, 通过注解,代码编写简化了很多:但熟悉注解的使 ...
- SpringBoot2.x使用EasyPOI导入Excel浅谈
SpringBoot2.x使用EasyPOI导入Excel浅谈 平时经常遇到客户要帮忙导入一些数据到数据库中,有些数据比较多有时候手动录入就会很耗时间,所以就自己写一个Excel导入的demo记录一下 ...
- 【WebApi系列】浅谈HTTP
[01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi如何传递参数 [04]详解WebApi测试和PostMan [05]浅谈WebApi Core ...
- 【WebApi系列】浅谈HTTP在WebApi开发中的运用
WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...
- @RequestBody, @ResponseBody 注解详解(转)
原文地址: https://www.cnblogs.com/qq78292959/p/3760651.html @RequestBody, @ResponseBody 注解详解(转) 引言: 接上一篇 ...
- @requestbody @responsebody详解
@requestbody @responsebody详解 会唤起spring mvc的httpmessageconveter转换类进行数据转换 简介: @RequestBody 作用: i) 该注解用 ...
- @RequestBody, @ResponseBody 注解理解
@RequestBody, @ResponseBody 注解理解 自己以前没怎么留意过,来实习后公司采用前后端分离的开发方式,前后端拿到的注释都是 json 格式的,这时候 @RequestBody, ...
- 浅谈 Fragment 生命周期
版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...
- 浅谈 LayoutInflater
浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
随机推荐
- Git简单操作及原理
设置签名: 用户名:tom Email地址:goodMorning@atguigu.com git config user.name tom_pro git config user.e ...
- 6. Mybatis Parameters
这个元素说的直白点就是定义参数.注意一个语句中只能有一个参数. 所以参数类型在以后的使用中,可能需要复杂的类型,比如hashmap,一个复杂的对象等.例如: <?xml version=&quo ...
- kubernetes资源优化
kubernetes资源优化方向 系统参数限制 设置系统内核参数: vm.overcommit_memory = 0 vm.swappiness = 0 sysctl -p #生效 内核参数overc ...
- spring data jpa之Auditing 表的创建时间,更新时间自动生成策略
java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...
- python3函数可变输入参量
技术背景 通常我们在python中定义一个函数的时候,需要给出明确的函数输入参量,比如对于一个数学函数\(z=f(x,y)\)就表示,\(z\)是关于\(x\)和\(y\)的一个函数.但是如果对于未知 ...
- 1079 Total Sales of Supply Chain
A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...
- 1-web 服务器 框架。
1.静态网页与动态网页 1.静态网页:无法与服务器进行交互的网页. 2.动态网页:能够与服务器进行交互的网页. 2.web与服务器 1.web:网页(HTML,CSS,JS) 2.服务器:能够给用户提 ...
- android添加账户流程分析涉及漏洞修复
android修复了添加账户代码中的2处bug,retme取了很酷炫的名字launchAnyWhere.broadAnywhere(参考资料1.2).本文顺着前辈的思路学习bug的原理和利用思路. 我 ...
- CVE-2010-2553:Microsoft Cinepak Codec CVDecompress 函数堆溢出漏洞调试分析
0x01 前言 微软提供一个叫 Cinepak 的视频解码器,通过调用 iccvid.dll 这个动态链接库文件可以使用这个解码器:微软自带的 Windows Media Player(视频音频软件) ...
- XCTF-i-get-id-200
i-get-id-200 题目描述 嗯..我刚建好了一个网站 解题过程 一共有三个页面 Hello World 告诉了页面是perl写的 Forms 输入name和age会返回渲染后的字符串 搜了一下 ...