如何在PostMan中调用含@RequestBody与对象参数的Spring REST接口
问题原因及解决方案
你的接口里,@RequestBody Teacher teacher会把整个请求体的JSON数据绑定到Teacher对象上,但Student参数没有任何注解,Spring默认会从URL查询参数或表单参数里提取字段值来绑定对象——而你用Raw JSON格式时,Student的参数没放在这些位置,所以才会一直为null。
因为代码不能修改,你只能调整请求的构造方式,具体操作如下:
PostMan请求构造步骤
- 选择POST请求,填写URL:
localhost:8080/endpoint - 切换到Params标签,添加Student的参数(key要和Student类的字段名完全一致):
- key:
id,value: 学生的ID(比如S001) - key:
nameStudent,value: 学生的姓名(比如张三)
- key:
- 切换到Body标签,选择
raw,格式选JSON,输入Teacher的JSON内容:{ "id": "T001", "nameTeacher": "李老师" } - 点击发送请求,此时Student和Teacher对象都会被正确绑定,你就能在接口里调用
student.getNameStudent()和teacher.getNameTeacher()获取属性值。
注意:Student类的字段名必须和URL参数的key完全匹配,比如字段是
nameStudent,参数key就不能写成name,否则Spring无法完成绑定。
内容的提问来源于stack exchange,提问作者Loner shushman
相关产品推荐
相关产品推荐

