У меня есть контроллер с 2 методами, которые возвращают связанные объекты с помощью аннотации @ModelAttribute:
@ModelAttribute("site")
public Site getSite(){
.....
return site;
}
@ModelAttribute("document")
public Document getDocument(){
.....
return document;
}
Эти объекты связаны друг с другом, когда один сайт имеет много документов.Эти отношения отображаются в JPA.Оба этих объекта содержат поле с одинаковым именем, называемое «urlAlias».Это поле редактируется на странице с использованием следующей разметки свободного маркера:
<@spring.bind "document" />
....
<@spring.formInput "document.urlAlias" />
Когда я отправляю форму контроллеру, я извлекаю объект документа, используя следующий синтаксис:
@RequestMapping(method = RequestMethod.POST)
public ModelAndView create(@ModelAttribute("document") @Valid Document document, BindingResult documentResult,
@ModelAttribute("site") Site site, Model model){
...Do Stuff...
}
Похоже, что любое значение, которое я ввожу в поле urlAlias документа, также было установлено в объекте Site, даже если я только отредактировал значение поля в объекте Document.
Я недоумеваю по поводу того, чтоздесь происходитЯ делаю что-то нехорошее, отображая более одного ModelAttribute в одном контроллере?Существуют ли другие вероятные причины такого поведения?