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. 【笔记】《Redis设计与实现》chapter19 事务

    chapter19 事务 Redis通过MULTI.EXEC.WATCH等命令来实现事务功能 19.1 事务的实现 事务开始 redis> MULTI ok 通过切换客户端状态的flag属性的R ...

  2. 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例

    当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...

  3. 10- sudo,exit命令

    sudo命令: 作用:用超级用户权限来执行这些命令. 格式:sudo 命令 [选项] [参数] Linux root根目录文件夹 exit命令: 退出用户登陆 Linux关机 开机 重启命令:

  4. Linux安装MySQL8高版本压缩包(通用)

    前言 前段时间领导让我部署测试环境,希望安装高版本的MySQL,过程遇到很多问题,特此记录帮助迷失的人们 下载 MySQL官方下载地址:https://dev.mysql.com/downloads/ ...

  5. showdan

    from shodan import Shodan import json api = Shodan("") result = api.search('windows') with ...

  6. hdu2722 简单最短路,处理好输入就行

    题意:       从左上角走到右下角,有的最短时间,每段路径的长度都是2520,每段上都有自己的限制速度,方向. 思路:      直接写就行了,就是个最短路,权值是2520/限制,输入的时候细心点 ...

  7. hdu4536 水搜索

    题意: XCOM Enemy Unknown Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others ...

  8. Linux中的SSH服务

    目录 SSH 使用scp在两台Linux间传数据: 基于SSH做远程访问,可以使用ftp服务的相关指令sftp root@192.168.10.10 Openssh公私钥验证: SSH SSH(Sec ...

  9. POJ2528线段树段更新逆序异或(广告牌)

    题意:      可以这样理解,有一条直线,然后用n条线段去覆盖,最后问全部都覆盖完之后还有多少是没有被完全覆盖的. 思路:      一开始想的有点偏,想到起点排序,然后..失败了,原因是忘记了题目 ...

  10. mongoDB常用

    登陆{ 本地的话直接mongo,如果是docker直接就这样docker exec -it 2d71a13e3128 mongo 或者直接这样 mongo 127.0.0.1:27017 } 退出是 ...