객체와 컨트롤러에서 나는 기능이 있습니다POST 요청 나는 스프링 MVC를 사용
내가 요청을 보내는 클라이언트 측에서@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 : [] }}
});
를 모든 것이 괜찮습니다 , 나는 3 개의 배열을 가진 객체를 얻는다. 하지만 클라이언트에서 다시 한 번 모델을 보내려는, 내가 그런 일을 작성하는 경우 :
@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 문자열의 차이점은'model : {}'부분입니다. Spring은 아마도 그것을 매핑하는 방법을 모른다. –
죄송합니다, 내 실수 - http://stackoverflow.com/questions/3337350/learning-springs-requestbody-and-requestparam @RequestBody 매개 변수는 하나만있을 수 있지만 어떻게 두 모델을 전달할 수 있습니까?! – Shallow
'Supervisor'와'BatchModel'을 모두 포함하는 DTO를 생성하십시오. 그런 다음'@ RequestBody'와 함께 사용하십시오. –