Java接口使用对象接收参数,传递过来都是Null?
一、问题描述
最近写Demo时,controller用对象接收参数,然后用PostMan测试接口,发现对象中的字段值一直是空,下面是排查思路和问题原因。
二、排查过程及原因
请求方式
一度怀疑GET能不能用对象接参,所以改用POST请求,但还是无法接收到。紧接着在入参前增加@RequestBody后,同样接收不到。下面是Post传参样例:
实体类排查
Demo实体类,比较简单,如下图:
然后细细一看发现没有get和set方法,这种情况下值能设置进去就怪了。。。于是增加get和set方法,就一切正常了。。
三、结论
- 排查实体类是否有get/set方法。
- GET请求,实体类前不需要也不能加@RequestBody;POST请求,需要增加@RequestBody注解进行实体映射。