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. 虚拟机装好centos7没网解决办法

    输入ip查询命名 ip addr  也可以输入 ifconfig(centOs7没有ifconfig命令)查看ip,但此命令会出现3个条目,centos的ip地址是ens33条目中的inet值. 发现 ...

  2. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之配置环境-05 欢迎加QQ群:1026880196 进行交流学习 #全部节点执行如下操作 1. 安装常 ...

  3. 终于可以像使用 Docker 一样丝滑地使用 Containerd 了

    有追求的工程师一般都是有技术洁癖的,云原生的世界更是如此,Kubernetes虽然制定了容器运行时接口(CRI)标准,但早期能用的容器运行时只有Docker,而Docker 又不适配这个标准,于是给 ...

  4. 案例分析–Note-taking Management Softwares

    项目 内容 这个作业属于那个课程 2021春季学期软件工程(罗杰.任健) 这个作业的要求在哪里 案例分析 我在这个课程的目标是 团队协作,利用软件工程的思维和方法开发出一款具有实用价值的软件 这个作业 ...

  5. 模拟退火算法Python编程(2)约束条件的处理

    1.最优化与线性规划 最优化问题的三要素是决策变量.目标函数和约束条件. 线性规划(Linear programming),是研究线性约束条件下线性目标函数的极值问题的优化方法,常用于解决利用现有的资 ...

  6. 【译】Android NDK API 规范

    [译]Android NDK API 规范 译者按: 修改R代码遇到Lint tool的报错,搜到了这篇文档,aosp仓库地址:Android NDK API Guidelines. 975a589 ...

  7. css单位介绍em ex ch rem vw vh vm cm mm in pt pc px

    长度单位主要有以下几种em ex ch rem vw vh vm cm mm in pt pc px %,大概可以分为几种"绝对单位"和"相对单位"和" ...

  8. Laravel路由中不固定数量的参数如何实现?

    前言 laravel是个好框架,我也在学习和使用,并且在公司里推广,最近在读 Laravel 源码的时候,发现了一个段特别有趣的代码,大家请看: ... 这三个点是做什么用的呢?我查了 PHP 的手册 ...

  9. 异步访问技术Ajax(XMLHttpRequest)

    目录 AJAX XMLHttpRequest Ajax向服务器发送请求 Ajax接收服务器响应 AJAX - onreadystatechange 事件 使用 Callback 函数 一次Ajax请求 ...

  10. 在 GitHub 学习,成长为自己想要的样子|HelloGitHub 访谈

    万事开头难,我们经过长期的策划和筹备,终于推出了 HelloGitHub 采访系列「开源项目作者的访谈」.这是一个采访个人开源项目作者的栏目,内容侧重于开源项目作者与开源的故事. 我们深知想要做好一个 ...