Я разрабатываю новое приложение Spring MVC с использованием запросов RESTful. Приложение выполняет стандартный объект загрузки базы данных, связывает значения и сохраняет. Чтобы не потерять значения объектов, которые недоступны в форме, я использую метод @ModelAttribute для предварительной загрузки объекта до привязки.Spring MVC @ModelAttribute не совместим с REST
При загрузке агентства с использованием URL
/agency/418
мой метод @ModelAttribute теперь способ обучения '418' ID. Я понимаю, что только регулярные атрибуты запроса могут быть обработаны, поэтому мой URL должен был бы быть
/agency/418?id=418
который своего рода ломает RESTful шаблон. То же самое при отправке данных POST.
Не могли бы вы прокомментировать это замечание ... я что-то упустил?
Благодаря Simon
Мое замечание заключается в том, что вы пытаетесь использовать функцию ModelAttribute для чего-то, чего она не должна была делать. Он не предназначен для предварительного заполнения объектов для использования в вызовах службы RESTful, он предназначен для облегчения привязки данных формы и контроллера. Эти данные будут либо POST'ed, либо GET'ed, вы в этом смысле вы правы, вам нужно будет передать значения, чтобы делать то, что вы пытаетесь, но я думаю, что ваше перемещение будет отличаться. – CodeChimp
http://stackoverflow.com/questions/3672100/spring-mvc-3-0-how-do-i-bind-to-a-persistent-object предлагает использовать объект формы для привязки ... Я буду Посмотрите на это. – Simon
Есть два места, где вы можете поместить аннотацию ModelAttribute. Первый - это параметр метода обработчика вида. В этом случае использование должно обеспечить привязку между формой и обработчиком. Во-вторых, это поставить его на метод, который не принимает аргументов и возвращает новый экземпляр целевого атрибута ModelAttribute. Обычно это частный метод. Целью этого является создание версии по умолчанию, когда обработчик определяет атрибут ModelAttribute, который не находится в модели или HttpSession. Затем этот метод вызывается для создания пустого инициализированного экземпляра для использования с помощью метода обработчика вида. – CodeChimp