解决@RequestBody部分属性丢失的问题
目录
- @RequestBody部分属性丢失
- 问题描述
- JavaBean实现
- Controller实现
- postman接口请求展示
- 结论
- springboot @RequestBody注入属性为空
- 对象属性为
- 我的解决办法
@RequestBody部分属性丢失
问题描述
JavaBean实现
public class VerifyNewFriendApplyReq implements Serializable { /** * 申请ID */ private Long applyId; /** * 审核结果 true:同意 false:拒绝 */ private Boolean isAccept; public Long getApplyId() { return applyId; } public void setApplyId(Long applyId) { this.applyId = applyId; } public Boolean getAccept() { return isAccept; } public void setAccept(Boolean accept) { isAccept = accept; } }
Controller实现
@RequestMapping(value = "/v0.1/verifyNewFriendApply", method = RequestMethod.POST) @ResponseBody public ImResponse verifyNewFriendApply(@RequestBody VerifyNewFriendApplyReq reqDto) throws Exception { Boolean result = friendApi.verifyNewFriendApply(reqDto); return new ImResponse(SystemContext.getSystemProperty().getReqId(), result); }
postman接口请求展示
结果发送请求时,在后台只能接收到aplyId字段的值,拿不到isAccept字段的值,检查后我们发现,在IDEA中,对于布尔类型的isXXX变量,在自动生成getter和setter方法时,会去除is标识,如图所示
所以@RequestBody在接收解析时,不会执行getAccept()方法,没有找到匹配的getIsAccept()方法,就会是null。
结论
注意:对于布尔类型的isXXX变量,在自动生成getter和setter方法时,会去除is标识。
springboot @RequestBody注入属性为空
对象属性为
private String rEngIds;
Controller中用@RequestBody注解接收
前端的json属性也是一样的rEngIds
但是死活映射不进
我的解决办法
改属性名:r_engIds完事儿啦~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
使用@RequestBody传对象参数时碰到的坑
目录 @RequestBody传对象参数时碰到的坑 我的真实代码是这样的: 也就是下面的区别: @RequestBody 的正确使用 @RequestBody接收的是一个Json对象 @RequestBody的使用 @RequestBody传对象参数时碰到的坑 工作中需要使用到http接口传一个对象数组,网上找到某博客:springmvc参数为对象,数组 但是测试还是不对,报错: 2019-02-21 23:44:37.168 WARN 34133 --- [nio-7001-exec-6] .
-
使用注解+RequestBodyAdvice实现http请求内容加解密方式
注解主要用来指定那些需要加解密的controller方法 实现比较简单 @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface SecretAnnotation { boolean encode() default false; boolean decode() default false; } 使用时添加注解在controller的方法上 @PostMapping("/preview
-
Java SpringBoot在RequestBody中高效的使用枚举参数原理案例详解
在优雅的使用枚举参数(原理篇)中我们聊过,Spring对于不同的参数形式,会采用不同的处理类处理参数,这种形式,有些类似于策略模式.将针对不同参数形式的处理逻辑,拆分到不同处理类中,减少耦合和各种if-else逻辑.本文就来扒一扒,RequestBody参数中使用枚举参数的原理. 找入口 对 Spring 有一定基础的同学一定知道,请求入口是DispatcherServlet,所有的请求最终都会落到doDispatch方法中的ha.handle(processedRequest, respons
-
springmvc 获取@Requestbody转换的异常处理方式
1.引入问题 使用spring 自动的@RequestBody,可以很方便的将参数转换成对象,然而在自动转换中出现如果出现异常,会默认直接发送HTTP异常代码和错误信息,如何才能自定义自己的异常呢. 2.解决方案 解答问题的方式有可以有很多,一种通用的解答方式是使用@ExceptionHandler 2.1 例如传递的请求体为JSON时 Spring 可以自动封装成一个Map @PostMapping(value = "/check",consumes = "applicat
-
使用RequestBodyAdvice实现对Http请求非法字符过滤
RequestBodyAdvice对Http请求非法字符过滤 利用RequestBodyAdvice对HTTP请求参数放入body中的参数进行非法字符过滤. 要求:spring 4.2+ 额外的pom.xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version&
-
解决@RequestBody使用不能class类型匹配的问题
@RequestBody不能class类型匹配 在首次第一次尝试使用@RequestBody注解 开始加载字符串使用post提交(貌似只能post),加Json数据格式传输的时候, data:{"stockCode":"601288","startTime":"2011-11-10 09:05","endTime":"2019-11-20 09:10"}", type: &qu
-
解决@RequestBody部分属性丢失的问题
目录 @RequestBody部分属性丢失 问题描述 JavaBean实现 Controller实现 postman接口请求展示 结论 springboot @RequestBody注入属性为空 对象属性为 我的解决办法 @RequestBody部分属性丢失 问题描述 JavaBean实现 public class VerifyNewFriendApplyReq implements Serializable { /** * 申请ID */ private Long applyId; /** *
-
使用SKIP-GRANT-TABLES 解决 MYSQL ROOT密码丢失
忘记MySQL(和PHP搭配之最佳组合) ROOT密码是在MySQL(和PHP搭配之最佳组合)使用中很常见的问题,可是有很多朋友并不会重置ROOT密码,那叫苦啊,我有深有感触,特写此文章与大家交流: 1.编辑MySQL(和PHP搭配之最佳组合)配置文件: windows环境中:%MySQL(和PHP搭配之最佳组合)_installdir%\my.ini //一般在MySQL(和PHP搭配之最佳组合)安装目录下有my.ini即MySQL(和PHP搭配之最佳组合)的配置文件. linux环境中:/e
-
基于axios 解决跨域cookie丢失的问题
设置 axios.defaults.withCredentials = true 即可 示例代码: axios.defaults.withCredentials = true; var param = new URLSearchParams(); param.append("vCode",vcode); axios.post('http://localhost',param) .then(function(res) { var rs=res.data; console.log(rs.d
-
解决django后台样式丢失,css资源加载失败的问题
就像这个图的样子: 解决方法,setting.py中DEBUG选项为True,否则无法映射到静态文件目录 以上这篇解决django后台样式丢失,css资源加载失败的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Vue router传递参数并解决刷新页面参数丢失问题
Vue Router 传参方式: 1. this.$router.push({ name: '模块名称', params: { // 各参数 } }) router.js: export default new Router({ routes: [ { path: '/paramsPassingByRouter', component: ParamsPassingByRouter, children: [ { path: 'paramsMode', name: 'paramsMode', com
-
解决BigDecimal转long丢失精度的问题
我就废话不多说了,大家还是直接看代码吧~ public static void main(String[] args) { BigDecimal asdBigDecimal = new BigDecimal(56.33347); long sad = asdBigDecimal.longValue(); double asda = asdBigDecimal.doubleValue(); System.out.println(sad); System.out.println(asda); } 运
-
Java用BigDecimal类解决Double类型精度丢失的问题
本篇要点 简单描述浮点数十进制转二进制精度丢失的原因. 介绍几种创建BigDecimal方式的区别. 整理了高精度计算的工具类. 学习了阿里巴巴Java开发手册关于BigDecimal比较相等的规定. 经典问题:浮点数精度丢失 精度丢失的问题是在其他计算机语言中也都会出现,float和double类型的数据在执行二进制浮点运算的时候,并没有提供完全精确的结果.产生误差不在于数的大小,而是因为数的精度. 关于浮点数存储精度丢失的问题,话题过于庞大,感兴趣的同学可以自行搜索一下:[解惑]剖析floa
-
@RequestBody 部分属性没有转化成功的处理
@RequestBody 部分属性没有转化成功 项目中在编写添加User的API的接口的时候发现 我把User参数设置成了@ResquestBody,但是测试的时候发现即使传入所有属性的数据,但是Controller在接收到的User实例里面只有部分属性被转化了,其他属性均没有转化成功. 后来经查明,发现是@ResquestBody只转化有getter的属性,我把所有有属性都添加getter,然后就可以正确转化了! 另外我发现如果是boolean属性可以添加isXX()的方法也可以 @Reque
-
MyBatis使用resultMap如何解决列名和属性名不一致
目录 使用resultMap如何解决列名和属性名不一致 OrderMapper.xml配置 单元测试 实体属性名与表字段名不匹配问题 问题 解决方案一 解决方案二 使用resultMap如何解决列名和属性名不一致 resultType可以指定将查询结果映射为pojo,但需要pojo的属性名和sql查询的列名一致方可映射成功. 如果sql查询字段名和pojo的属性名不一致,可以通过resultMap将字段名和属性名作一个对应关系 ,resultMap实质上还需要将查询结果映射到pojo对象中. 需
-
一文教会你解决js数字精度丢失问题
目录 一.关于为什么要解决精度丢失 二.怎么解决js的计算精度丢失问题? 三.toPrecision 特定方法返回四舍五入长度字符串 结语 一.关于为什么要解决精度丢失 可以看下例子,因为js失去精度问题也是常见的问题,正常我们可以四舍五入或者 toFixed保留小数这种去解决 现在遇到问题是我们明知道计算结果是等于0.01的但是最后的结果确实true,如果我们遇到运算问题,小数数值比对问题,那么我们就必须要去解决他,否则也就会出现上者情况,出现逻辑判断出错问题 二.怎么解决js的计算精度丢失问
随机推荐
- Ext修改GridPanel数据和字体颜色、css属性等
- 零基础写Java知乎爬虫之进阶篇
- 详解php中serialize()和unserialize()函数
- AjaxFileUpload+Struts2实现多文件上传功能
- angularjs 源码解析之scope
- VBS中Select CASE的其它用法
- Oracle与Mysql主键、索引及分页的区别小结
- Javascript的this用法
- 分享一段php获取linux服务器状态的代码
- ASP实现SQL备份、恢复
- ASP之简化创建关闭记录集对象并创建使用简单的MSSQL存储过程
- Android 基于百度语音的语音交互功能(推荐)
- MySQL常用时间函数详解(推荐)
- 讲的非常不错的PHP编码规范第1/3页
- 使用PHP和JavaScript判断请求是否来自微信内浏览器
- Ajax Control Toolkit 34个服务器端控件第1/2页
- 写的一段拖动对象的代码
- php读取sqlite数据库入门实例代码
- Linux下安装Oracle(CentOS-Oracle 12c)的方法
- js类 from qq