解决@RequestBody部分属性丢失的问题

网友投稿 545 2022-10-03


解决@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) {

http:// 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 Shttp://tring rEngIds;

Controller中用@RequestBody注解接收

前端的json属性也是一样的rEngIds

但是死活映射不进

我的解决办法

改属性名:r_engIds完事儿啦~


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网络攻击中主动攻击和被动攻击有什么区别?(什么属于网络攻防中被动攻击)
下一篇:#yyds干货盘点#安全CT之环境搭建--靶机搭建(owasp)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~