Как модели аннотированных методов должны взаимодействовать?

Я хотел бы знать, как методы контроллера должны взаимодействовать с ModelAttribute аннотированные методы.

Например handlePage Метод хотел бы отфильтровать список, созданный createList метод? Или установите идентификатор для объекта, созданного createAnObject метод?

Это возможно или ModelAttribute Аннотированные методы предназначены для прикрепления статических данных к модели?

@ModelAttribute("someList")
  public ArrayList<SomeList> createList() {
    return new ArrayList<SomeList>(100);
  }
@ModelAttribute("anObject")
  public AnObject createAnObject() {
    return new MyObject();
  }

  @RequestMapping(method=RequestMethod.GET)
  public void handlePage(Model model) {
    //Do some stuff to populate the model....
  }

1 ответ

Решение

Эти два не должны действительно взаимодействовать. @ModelAttributeв этом контексте предназначен для предоставления справочных данных, то есть данных, которые не зависят от деталей запроса.

Если ваш метод обработчика должен изменить эти данные, то @ModelAttribute не подходит Вместо этого метод-обработчик должен явно добавить данные в модель после ее изменения.

Другие вопросы по тегам