软件编程
位置:首页>> 软件编程>> java编程>> 解决@RequestBody部分属性丢失的问题

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

作者:Ellie_love  发布时间:2023-08-01 15:00:21 

标签:@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接口请求展示

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

结果发送请求时,在后台只能接收到aplyId字段的值,拿不到isAccept字段的值,检查后我们发现,在IDEA中,对于布尔类型的isXXX变量,在自动生成getter和setter方法时,会去除is标识,如图所示

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

所以@RequestBody在接收解析时,不会执行getAccept()方法,没有找到匹配的getIsAccept()方法,就会是null。

结论

注意:对于布尔类型的isXXX变量,在自动生成getter和setter方法时,会去除is标识。

springboot @RequestBody注入属性为空

对象属性为


private String rEngIds;

Controller中用@RequestBody注解接收

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

但是死活映射不进

我的解决办法

改属性名:r_engIds完事儿啦~

来源:https://blog.csdn.net/chen1xiao2mo3/article/details/84649777

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com