欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

常见问题

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

作者:用户投稿2026-01-11 03:30:27
目录
  • @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 = "/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完事儿啦~

        以上为个人经验,希望能给大家一个参考,也希望大家多多支持。