我在控制器中有两个方法,这是来自客户端的处理程序请求。我不能得到PUT的请求体。对于发送请求,我在Chrome中使用Advanced Rest Client。
@RequestMapping(value = "/addPupil", method = RequestMethod.POST)
public void addPupil(Pupil pupil){
System.out.println(pupil.toString());
}
高级休息客户端的结果:
状态200确定响应不包含任何数据。
标准输出:
Pupil{address='is address', level='is level', group='is group', last='is last', name='is name'}
但是这个方法有问题,我不能得到瞳孔对象!
@RequestMapping(value = "/changePupil/{id}", method = RequestMethod.PUT)
public void changePupil(@PathVariable("id") Long id, Pupil pupil){
System.out.println("id: "+id);
System.out.println(pupil.toString());
}
高级休息客户端的结果:
状态200确定响应不包含任何数据。
标准输出:
id: 2
Pupil{address='null', level='null', group='null', last='null', name='null'}
答案 0 :(得分:0)
你应该使用@RequestBody
@RequestMapping(value = "/changePupil/{id}", method = RequestMethod.PUT)
public void changePupil(@PathVariable("id") Long id,@RequestBody Pupil pupil){
System.out.println("id: "+id);
System.out.println(pupil.toString());
}
答案 1 :(得分:0)
利用您的控制器类而不是@RestController
上的@Controller
,并指定您的其他方法消耗的MediaType
,您也可能必须注册相应的HttpMessageConverter
。