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. Oracle-buffer cache过小导致SQL执行时间长

    一.问题:客户反馈在生产库和测试库执行相同SQL,测试库执行比生产库慢一倍 问题摆在这里,需要进行分析? 啥??? 版本11.2.0.4,都是单实例,主机系统硬件配置差不多. 二.对比SQL的执行效率 ...

  2. day-4 xctf-pwn CGfsb

    xctf-pwn CGfsb 传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id= ...

  3. 浅谈跨域问题,CORS跨域资源共享

    1,何为跨域? 在理解跨域问题之前,你先要了解同源策略和URL,简单叙述: 1)同源策略 三同:协议相同,域名相同,端口相同: 目的:保证用户信息安全,防止恶意网站窃取数据.同源策略是必须的,否则co ...

  4. OO Unit4总结 & 结课总结

    OO Unit4总结 & 结课总结 OO课Unit4 UML解析应用技术回顾 BUAA.1823.邓新宇 2020/6/19 总结本单元三次作业的架构设计 本单元的架构设计主要是两方面. 一方 ...

  5. UVA11137(立方数之和)

    题意:       给你一个n(<=10000),问他如果由立方数之和组成,那么有多少种方法? 思路:        一个地推公式,d[i][j] 表示用不大于i的数字去组合j这个数字有多少种方 ...

  6. 逆向 string.h 函数库 memset、strcpy、strcmp 函数

    memset 函数 函数原型:void *memset(void *str, int c, size_t n) 主要功能:复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符 ...

  7. markdown 实现代码折叠效果

    展开:我是一个挑山工,仙人跳 #include int main() { printf("挑山工,快乐加倍"); } 展开:我是一个挑山工,仙人跳 #include int mai ...

  8. Windows 签名伪造工具的使用,Python,签名

    #!/usr/bin/env python3 # LICENSE: BSD-3 # Copyright: Josh Pitts @midnite_runr import sys import stru ...

  9. R3获取kernel32地址

    获取Kernel32地址 如果是搞PE变形或者PE重构,再或者代码注入,很多时候我们要动态获取Loadlibrary()以及GetPeocAddress()两个函数的地址,通过这两个函数再动态获取其他 ...

  10. 在@Data注释lombok上使用继承警告等于/ hashCode(Warning equals/hashCode on @Data annotation lombok with inheritance)

    生成equals / hashCode实现但没有调用超类,即使这个类没有扩展java.lang.Object.如果这是故意的,请将 @EqualsAndHashCode(callSuper = fal ...