Java接口使用对象接收参数,传递过来都是Null?

370 阅读1分钟

Java接口使用对象接收参数,传递过来都是Null?

一、问题描述

最近写Demo时,controller用对象接收参数,然后用PostMan测试接口,发现对象中的字段值一直是空,下面是排查思路和问题原因。

image.png

image.png

二、排查过程及原因

请求方式

一度怀疑GET能不能用对象接参,所以改用POST请求,但还是无法接收到。紧接着在入参前增加@RequestBody后,同样接收不到。下面是Post传参样例:

image.png

实体类排查

Demo实体类,比较简单,如下图:

image.png 然后细细一看发现没有get和set方法,这种情况下值能设置进去就怪了。。。于是增加get和set方法,就一切正常了。。

三、结论

  1. 排查实体类是否有get/set方法。
  2. GET请求,实体类前不需要也不能加@RequestBody;POST请求,需要增加@RequestBody注解进行实体映射。