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注解原理:

@RequestBody注解原理

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的更多相关文章

  1. 浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别

    浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别 Spring 2.5 版本新增了注解功能, 通过注解,代码编写简化了很多:但熟悉注解的使 ...

  2. SpringBoot2.x使用EasyPOI导入Excel浅谈

    SpringBoot2.x使用EasyPOI导入Excel浅谈 平时经常遇到客户要帮忙导入一些数据到数据库中,有些数据比较多有时候手动录入就会很耗时间,所以就自己写一个Excel导入的demo记录一下 ...

  3. 【WebApi系列】浅谈HTTP

    [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi如何传递参数 [04]详解WebApi测试和PostMan [05]浅谈WebApi Core ...

  4. 【WebApi系列】浅谈HTTP在WebApi开发中的运用

    WebApi系列文章 [01]浅谈HTTP在WebApi开发中的运用 [02]聊聊WebApi体系结构 [03]详解WebApi参数的传递 [04]详解WebApi测试和PostMan [05]浅谈W ...

  5. @RequestBody, @ResponseBody 注解详解(转)

    原文地址: https://www.cnblogs.com/qq78292959/p/3760651.html @RequestBody, @ResponseBody 注解详解(转) 引言: 接上一篇 ...

  6. @requestbody @responsebody详解

    @requestbody @responsebody详解 会唤起spring mvc的httpmessageconveter转换类进行数据转换 简介: @RequestBody 作用: i) 该注解用 ...

  7. @RequestBody, @ResponseBody 注解理解

    @RequestBody, @ResponseBody 注解理解 自己以前没怎么留意过,来实习后公司采用前后端分离的开发方式,前后端拿到的注释都是 json 格式的,这时候 @RequestBody, ...

  8. 浅谈 Fragment 生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Fragment 文中如有纰漏,欢迎大家留言指出. Fragment 是在 Android 3.0 中 ...

  9. 浅谈 LayoutInflater

    浅谈 LayoutInflater 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/View 文中如有纰漏,欢迎大家留言指出. 在 Android 的 ...

  10. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

随机推荐

  1. Git简单操作及原理

    设置签名: ​ 用户名:tom ​ Email地址:goodMorning@atguigu.com ​ git config user.name tom_pro ​ git config user.e ...

  2. 6. Mybatis Parameters

    这个元素说的直白点就是定义参数.注意一个语句中只能有一个参数. 所以参数类型在以后的使用中,可能需要复杂的类型,比如hashmap,一个复杂的对象等.例如: <?xml version=&quo ...

  3. kubernetes资源优化

    kubernetes资源优化方向 系统参数限制 设置系统内核参数: vm.overcommit_memory = 0 vm.swappiness = 0 sysctl -p #生效 内核参数overc ...

  4. spring data jpa之Auditing 表的创建时间,更新时间自动生成策略

    java实际编程中,几乎每一张表都会有createTime和updateTime字段,spring的优秀之处在于只要用几个注解,就帮我们解决该类问题,具体实现: 1,实体类添加注解: @EntityL ...

  5. python3函数可变输入参量

    技术背景 通常我们在python中定义一个函数的时候,需要给出明确的函数输入参量,比如对于一个数学函数\(z=f(x,y)\)就表示,\(z\)是关于\(x\)和\(y\)的一个函数.但是如果对于未知 ...

  6. 1079 Total Sales of Supply Chain

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  7. 1-web 服务器 框架。

    1.静态网页与动态网页 1.静态网页:无法与服务器进行交互的网页. 2.动态网页:能够与服务器进行交互的网页. 2.web与服务器 1.web:网页(HTML,CSS,JS) 2.服务器:能够给用户提 ...

  8. android添加账户流程分析涉及漏洞修复

    android修复了添加账户代码中的2处bug,retme取了很酷炫的名字launchAnyWhere.broadAnywhere(参考资料1.2).本文顺着前辈的思路学习bug的原理和利用思路. 我 ...

  9. CVE-2010-2553:Microsoft Cinepak Codec CVDecompress 函数堆溢出漏洞调试分析

    0x01 前言 微软提供一个叫 Cinepak 的视频解码器,通过调用 iccvid.dll 这个动态链接库文件可以使用这个解码器:微软自带的 Windows Media Player(视频音频软件) ...

  10. XCTF-i-get-id-200

    i-get-id-200 题目描述 嗯..我刚建好了一个网站 解题过程 一共有三个页面 Hello World 告诉了页面是perl写的 Forms 输入name和age会返回渲染后的字符串 搜了一下 ...