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. #min-max容斥,FWT#洛谷 3175 [HAOI2015]按位或

    题目 分析 按位去看,最终的答案要求 \(E(\max S)\) 就是 \(S\) 出现的期望时间. 根据min-max容斥,\(E(\max S)=\sum_{T\subset S}(-1)^{|T ...

  2. HarmonyOS振动效果开发指导

      Vibrator开发概述 振动器模块服务最大化开放硬工最新马达器件能力,通过拓展原生马达服务实现振动与交互融合设计,打造细腻精致的一体化振动体验和差异化体验,提升用户交互效率和易用性.提升用户体验 ...

  3. 【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(下)

    [中秋国庆不断更]HarmonyOS对通知类消息的管理与发布通知(下) 一.发布进度条类型通知 进度条通知也是常见的通知类型,主要应用于文件下载.事务处理进度显示.HarmonyOS提供了进度条模板, ...

  4. 五款最优秀的java微服务框架

    微服务被广泛用于创建多功能的应用程序,通过组合每个功能部分并将它们逐层放在一个单元中.许多人可能没有意识到微服务是一组小型服务中制作单个应用程序的方法,每个服务都独立运行(进程). java微服务框架 ...

  5. Java:使用POI和泛型生成excel表格

    首先创建一个maven项目,导入POI依赖包 <dependency> <groupId>org.apache.poi</groupId> <artifact ...

  6. Python中2种常用数据可视化库:Bokeh和Altair

    本文分享自华为云社区<探究数据可视化:Bokeh vs. Altair>,作者:柠檬味拥抱. 在数据科学和数据分析领域,数据可视化是一种强大的工具,可以帮助我们更好地理解数据.发现模式和趋 ...

  7. Java中list集合深复制

    import org.apache.commons.collections.CollectionUtils; import java.util.ArrayList; import java.util. ...

  8. 海康摄像机&大华摄像机&DSS平台的RTSP流地址格式

    实时流 海康: rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream 说明:username: ...

  9. CF1995E Long Inversions(贪心 + 差分)

    见代码 点击查看代码 //背景:夸一下自己,CF1955A~E均是自己想出来的,这道题思路是自己想的,唯一没想到用差分数组维护 //原理:贪心(想最左边的1开始,不可能对其左边包括自己操作了,否则又要 ...

  10. 打CS2的时候提示 error:unrec stream cmd 2090 82a

    打CS2的时候提示 error:unrec stream cmd 2090 82a 打着打着就卡住,然后提示error:unrec stream cmd 2090 82a 找了一圈,进bios把内存条 ...