解决@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 = "https://www.it610.com/v0.1/verifyNewFriendApply", method = RequestMethod.POST)@ResponseBodypublic 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部分属性丢失的问题】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 生命中最迷人的部分轻拿轻放
- Spark|Spark 数据倾斜及其解决方案
- 解决SyntaxError:|解决SyntaxError: invalid syntax
- Spectrum|Spectrum 区块偶尔停止同步问题排查与解决笔记