У меня небольшой вопрос относительно возможностей привязки данных Spring MVC.
У меня есть следующий класс контроллера:
@Controller
@RequestMapping("/foo")
public class FooController() {
// … some init stuff //
@RequestMapping(value = "/{id}/edit.{format}", method = RequestMethod.POST)
public ModelAndView editFoo(@RequestBody FooItem foo, @PathVariable("format") String format) {
// some code here to edit the FooItem //
}
}
Я хочу иметь возможность публиковать данные форм, а также XML для этого метода. Чтобы это работало, я добавил два конвертера сообщений в мой applicationContext.xml
: стандартный formHttpMessageConverter
и маршаллер XStream.
Это нормально работает, но у меня проблема: если я использую @RequestBody
и отправляю данные формы по URL-адресу, сервер отвечает 415 Ошибка. Если я удаляю эту аннотацию, данные формы работают хорошо, и Spring создает объект для меня, но если я размещаю XML против него, я получаю пустой объект.
Есть ли способ обойти это или мне нужно иметь 2 метода для обработки обоих входящих форматов?
Заранее спасибо!