我使用Spring MVC和控制器我有功能:POST请求对象
@ResponseBody
@RequestMapping(value = "/json/negotiation/Supervisor.json", produces = "application/json", method = RequestMethod.POST)
public ExtResponse changeSupervisorStep(@RequestBody BatchModel<Supervisor> supervisors) {...}
从客户端我发送请求(使用ExtJS的):
Ext.Ajax.request({
url : '/jur_rest/json/negotiation/Supervisor.json',
jsonData : { supervisors : {toInsert : [], toDelete : [], toUpdate : [] }}
});
,一切都很好,我得到了三个数组的对象。但我想再次发送客户端的模型,如果我写这样的东西:
@ResponseBody
@RequestMapping(value = "/json/negotiation/Supervisor.json", produces = "application/json", method = RequestMethod.POST)
public ExtResponse changeSupervisorStep(@RequestBody BatchModel<Supervisor> supervisors, @RequestBody Supervisor model) { ... }
Ext.Ajax.request({
url : '/jur_rest/json/negotiation/Supervisor.json',
jsonData : { supervisors : {toInsert : [], toDelete : [], toUpdate : [] }, model : {}}
});
我得到错误 - 400错误的请求。怎么了?谢谢。
编辑:
learning Spring's @RequestBody and @RequestParam 可以有只有一个控制器功能@RequestBody parametr。我如何在一个请求中传递两个模型?把他们合并成一个班级?
的区别你的两个JSON字符串之间是'模式:{}'一部分。春天可能不知道如何映射它。 –
哎呀,我的错误 - http://stackoverflow.com/questions/3337350/learning-springs-requestbody-and-requestparam 只能有一个@RequestBody parametr,但我怎么能传递两个型号?! – Shallow
创建一个包含'Supervisor'和'BatchModel'的DTO。然后用'@ RequestBody'来使用它。 –