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. 提升系统管理:监控和可观察性在DevOps中的作用

    在不断发展的DevOps世界中,深入了解系统行为.诊断问题和提高整体性能的能力是首要任务之一.监控和可观察性是促进这一过程的两个关键概念,为系统的健康和性能提供了宝贵的可见性.虽然这些术语经常可以互换 ...

  2. 从零开始学Spring Boot系列-集成MyBatis-Plus

    在Spring Boot应用开发中,MyBatis-Plus是一个强大且易于使用的MyBatis增强工具,它提供了很多实用的功能,如代码生成器.条件构造器.分页插件等,极大地简化了MyBatis的使用 ...

  3. #直径#CF804D Expected diameter of a tree

    题目 给一片森林,\(q\) 个询问,每个询问两个点, 问将这两个点所在的集合连接起来组成的新集合,它的最远两点的距离的期望值是多少. 分析 首先将以每个点为根的最大深度求出来,然后对于两棵树, 只有 ...

  4. #模型转换#洛谷 6075 [JSOI2015]子集选取

    题目 分析 \(n\)个元素可以独立操作,考虑单个元素, 则选不选择一定有一道分界线, 而这条分界线正好要走\(k\)次, 每次可以选择向上走或向右走,所以为\(2^k\), 由于\(n\)个元素相互 ...

  5. VS的 x86_64 , x64_86 , x64 , x86 有什么区别

    x86 Native Tools Command Prompt - Sets the environment to use 32-bit, x86-native tools to build 32-b ...

  6. C 语言函数完全指南:创建、调用、参数传递、返回值解析

    C 语言中的函数 函数是一段代码块,只有在被调用时才会运行. 您可以将数据(称为参数)传递给函数. 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用. 预定义函数 事实证明,您已 ...

  7. C++ 模板和泛型编程详解

    C++中的模板和泛型编程是非常重要的概念.模板是一种将数据类型作为参数的通用程序设计方法.它们允许开发人员编写可以处理各种数据类型的代码,而无需为每种数据类型编写不同的代码.下面介绍了一些关于C++中 ...

  8. Docker学习路线12:开发者体验

    到目前为止,我们只讨论了使用Docker来部署应用程序.然而,Docker也是一个极好的用于开发应用程序的工具.可以采用一些不同的建议来改善开发体验. 在应用程序中使用docker-compose以方 ...

  9. 了解 Spring MVC 架构、Dispatcher Servlet 和 JSP 文件的关键作用

    Spring MVC 是 Spring 框架的一部分,是一个 Web 应用程序框架.它旨在使用 Model-View-Controller(MVC) 设计模式轻松构建Web应用程序. Spring M ...

  10. openGauss单机部署

    openGauss 单机部署 一.安装环境 操作系统:虚拟机 VMware.CentOS7.9 环境设置: (1)虚拟机内存 3G.磁盘 100G (2)系统版本修改 一开始使用了 centos8,无 ...