解决@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接口请求展示 解决@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完事儿啦~
        【解决@RequestBody部分属性丢失的问题】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

          推荐阅读