解决@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完事儿啦~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
浅析Java中Map与HashMap,Hashtable,HashSet的区别
HashMap和Hashtable两个类都实现了Map接口,二者保存K-V对(key-value对);HashSet则实现了Set接口,性质类似于集合2013-09-09Apache Commons Math3探索之多项式曲线拟合实现代码
这篇文章主要介绍了Apache Commons Math3探索之多项式曲线拟合实现代码,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。2017-10-10Maven在Windows中的配置以及IDE中的项目创建(图文教程)
这篇文章主要介绍了Maven在Windows中的配置以及IDE中的项目创建(图文教程),具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-09-09
最新评论