RequestBody 接收的是请求体里面(body)的数据

RequestParam接收的是key-value里面的参数,所以它会被切割进行处理从而可以是普通元素、数组、集合、对象等接收

get---》@RequestParam(),不能用@RequestBody

post---》@RequestParam() & @RequestBody

@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);

在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

即:如果参数时放在请求体中,application/json传入后台的话,那么后台要用@RequestBody才能接收到;
如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或者形参前什么也不写也能接收。

注:如果参数前写了@RequestParam(xxx),那么前端必须有对应的xxx名字才行,如果没有xxx名的话,那么请求会出错,报400。

注:如果参数前不写@RequestParam(xxx)的话,那么就前端可以有,也可以没有对应的xxx名字,如果有xxx名的话,那么就会自动匹配;没有的话,请求也能正确发送。

示例1

@AutoLog(value = "运维工程师-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(OperatStaff operatStaff,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<OperatStaff> queryWrapper = QueryGenerator.initQueryWrapper(operatStaff, req.getParameterMap());
Page<OperatStaff> page = new Page<OperatStaff>(pageNo, pageSize);
IPage<OperatStaff> pageList = operatStaffService.page(page, queryWrapper);
return Result.ok(pageList);
}

示例2

@AutoLog(value = "运维合约管理-添加")
@ApiOperation(value="运维合约管理-添加", notes="运维合约管理-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody OperatContract[] operatContracts) {
for(OperatContract operatContract:operatContracts)
{
operatContractService.save(operatContract);
} return Result.ok("添加成功!");
}

示例3

@AutoLog(value = "运维合约管理-通过id删除")
@ApiOperation(value="运维合约管理-通过id删除", notes="运维合约管理-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
operatContractService.removeById(id);
return Result.ok("删除成功!");
}

示例4

@PostMapping(value = "/sms")
public Result<String> sms(@RequestBody JSONObject jsonObject) {
Result<String> result = new Result<String>();
String mobile = jsonObject.get("mobile").toString();
String smsmode=jsonObject.get("smsmode").toString();
log.info(mobile);
Object object = redisUtil.get(mobile);
if (object != null) {
result.setMessage("验证码10分钟内,仍然有效!");
result.setSuccess(false);
return result;
}

https://blog.csdn.net/justry_deng/article/details/80972817/

java后台@RequestBody和@RequestParam的更多相关文章

  1. 如何用CropBox实现头像裁剪并与java后台交互

    如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blo ...

  2. 微信小程序登录JAVA后台

    代码地址如下:http://www.demodashi.com/demo/12736.html 登录流程时序登录流程时序 具体的登录说明查看 小程序官方API 项目的结构图: springboot项目 ...

  3. 安卓发送图片文字,java后台接收

    安卓使用retrofit2 和rxjava2 url: @Multipart @POST(UrlTools.STORYUPLOAD) Observable<Result> saveRepo ...

  4. @RequestBody 和 @RequestParam(“test”) 的区别与联系

    @RequestBody @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的):GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用 ...

  5. 【SpringBoot—注解】@requestBody 与@requestparam;@requestBody的加与不加的区别

    一)首先说明xia @requestBody与@requestParam的区别 spring的RequestParam注解接收的参数是来自于requestHeader中,即请求头.都是用来获取请求路径 ...

  6. pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页

    java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...

  7. ajax提交数据到java后台,并且返回json格式数据前台接收处理值

    1.前台html页面.有一段代码如下: 账  户:  <input type="text" name="userName" id="userN& ...

  8. java后台对前端输入的特殊字符进行转义

    转自:http://www.cnblogs.com/yangzhilong/p/5667165.html java后台对前端输入的特殊字符进行转义 HTML: 常见的帮助类有2个:一个是spring的 ...

  9. java后台获取Access_token的工具方法

    本方法主要通过java后台控制来获取Access_token,需要你已经知道自己的ID跟密码 因为微信的权限设置大概每天可以获取两千条,每条有效时间为2小时 /** * 输入自己的id跟密码,获取微信 ...

  10. js前台加密,java后台解密实现

    参考资料: JS前台加密,java后台解密实现

随机推荐

  1. #线性dp,排列组合#洛谷 2476 [SCOI2008]着色方案

    题目 分析(弱化版) 最暴力的想法就是直接维护每种颜色的个数dp, 弱化版有一个很突出的地方就是 \(c_i\leq 5\), 也就是说可以将相同个数的颜色合并按照个数dp, 设 \(dp[c1][c ...

  2. #dp,齐肯多夫定理#CF126D Fibonacci Sums

    题目 \(T(T\leq 10^5)\) 组数据,每次给定数字 \(n(n\leq 10^{18})\), 问有多少种方案将 \(n\) 分解成若干个互不相同的斐波那契数 分析 如果找到一个方案使得所 ...

  3. Go 编程语言详解:用途、特性、与 Python 和 C++ 的比较

    什么是Go? Go是一个跨平台.开源的编程语言 Go可用于创建高性能应用程序 Go是一种快速.静态类型.编译型语言,感觉上像动态类型.解释型语言 Go由Robert Griesemer.Rob Pik ...

  4. 一个库帮你快速实现EF Core数据仓储模式

    前言 EF Core是我们.NET日常开发中比较常用的ORM框架,今天大姚要分享的内容是如何使用EF Core Generic Repository通用仓储库来快速实现EF Core数据仓储模式. E ...

  5. WPF/MVVM模式入门教程(二):实现INotifyPropertyChanged接口

    引用:https://www.cnblogs.com/flh1/p/12447188.html 1.创建NotifyPropertyChanged类 我们在common文件夹下创建一个名为Notify ...

  6. Linux系统 g++ 链接 libopencv_world.a 静态库编译程序

    编译opencv,我是直接编译成 libopencv_world.a  一个文件 正常链接编译,容易报错:main: hidden symbol `opj_read_header' isn't def ...

  7. amcap使用方法

    1.选择设备 device 里面显示的是设备,分割线上面是视频设备,分割线下面是音频设备 2.打开图像 options > Preview  勾选上就是打开视频,再次点击取消勾线就是关闭视频 3 ...

  8. szfpga 高云gowin国产开发板GW2AR-18核心板fpga cpld测试板

    1. 概述 国产FPGA是最近几年起来的产品,具有性价比高特点.而GOWIN属于国产FPGA成员,在服务和芯片都是比较大的优势,很多用户都用在LED控制,电机控制,PLC设备上,以及用于替换Latti ...

  9. SVM简单分类的使用 sklearn机器学习

    # sklearn 库中导入 svm 模块 from sklearn import svm # 定义三个点和标签 X = [[2, 0], [1, 1], [2,3]] y = [0, 0, 1] # ...

  10. SRC信息收集方法论

    "感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" SRC信息 ...