Spring @ModelAttribute не заботится о commandName - PullRequest
0 голосов
/ 25 сентября 2011

JSP:

<form:form commandName="editWeather" method="post" action="../edit">
    <!-- Input fields -->
    <input type="submit" value="Submit">
</form:form>

И вот как я получаю модель весной:

@ModelAttribute("DONTGIVEADAMN") Weather weather

И я все еще могу использовать weather для выполнения своих операций, и это работаетотлично, например:

weatherService.editWeather(weather);

Мой вопрос ... Почему это работает?

Ответы [ 2 ]

5 голосов
/ 25 сентября 2011

Имя атрибута модели не имеет значения при привязке данных, полученных из формы (поскольку имена полей формы соответствуют именам полей объекта модели), оно имеет значение только при визуализации формы.

В частности, когда имя атрибута модели в вашем методе-обработчике POST не соответствует commandName в форме, вы сможете получать данные, но не сможете снова отобразитьформа с ошибками проверки.

1 голос
/ 25 сентября 2011

соответствует типу класса (или интерфейсу), а не имени переменной / параметра; и указанное отображение запроса / подписи метода должно быть правильным.

...