好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

@RequestBody部分属性丢失

问题描述

JavaBean实现

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

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实现

?

1

2

3

4

5

6

@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注入属性为空

对象属性为

?

1

private String rEngIds;

Controller中用@RequestBody注解接收

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

但是死活映射不进

我的解决办法

改属性名:r_engIds完事儿啦~

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

原文链接:https://blog.csdn.net/chen1xiao2mo3/article/details/84649777

查看更多关于解决@RequestBody部分属性丢失的问题的详细内容...

  阅读:30次