Helpers - компьютеры, интернет, программирование

Spring связывает несколько атрибутов с одним и тем же @ModelAttribute

У меня есть страница предварительного просмотра, которая добавляет или редактирует модели и отображает предварительный просмотр.

@RequestMapping(value = "/preview", method = RequestMethod.POST)
    public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
        //action
    } 

@RequestMapping(value = "/preview", method = RequestMethod.POST)
    public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
        //action
    } 

Мне нужно вызвать предварительный просмотр со страницы добавления формы и отредактировать страницу формы. Модели, которые я собираюсь передать, одинаковы, но имеют разные формы.

(1) Есть ли способ, которым ModelAttribute поддерживает такое сопоставление имен с несколькими атрибутами? (2) Как я могу думать об этом? Думая о (а) переименовании имени/атрибута формы перед отправкой формы, чтобы использовать то же имя атрибута. (b) Полностью удалить ModelAttribute. Для меня это не вариант, поскольку я использую привязку формы Spring MVC.

Примечание. Я использую editForm/addForm в качестве атрибутов сеанса.

15.02.2016

  • Я могу ошибаться, но я не думаю, что атрибуты модели используются как часть логики маршрутизации, поэтому Spring не может определить, на какое из двух идентичных сопоставлений направить предварительный POST. Вам нужно подумать об этом с точки зрения REST — одна из этих вещей должна быть POST, а другая — PUT. Получение этого права информирует ваше решение об атрибутах модели... 15.02.2016
  • @EngineerDollery, я согласен с частью логики маршрутизации. Мы НЕ ДОЛЖНЫ (в моем случае НЕ МОЖЕМ) использовать ModelAttribute, чтобы определить, к какому методу маршрутизировать. Мое намерение состоит в том, чтобы захватить одну и ту же модель формы (типы) с разными именами атрибутов в один и тот же метод. 16.02.2016

Ответы:


1

На самом деле не решения, а обходные пути.

Подход 1:

@RequestMapping(value = "/preview", method = RequestMethod.PUT)
public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
    //action
} 

@RequestMapping(value = "/preview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
    //action
} 

Подход 2:

@RequestMapping(value = "/editpreview", method = RequestMethod.PUT)
public ModelAndView preview(@ModelAttribute("editForm") FormModel editFormModel) {
    //action
} 

@RequestMapping(value = "/addpreview", method = RequestMethod.POST)
public ModelAndView preview(@ModelAttribute("addForm") FormModel addFormModel) {
    //action
} 
05.06.2017
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..