В Spring 3 я видел два разных атрибута в теге формы в jsp
<form:form method="post" modelAttribute="login">
в этом атрибуте modelAttribute - это имя объекта формы, свойства которого используются для заполнения формы. И я использовал его при публикации формы и в контроллере, который я использовал @ModelAttribute
для захвата значения, вызова валидатора, применения бизнес-логики. Здесь все хорошо. Сейчас же
<form:form method="post" commandName="login">
Что ожидается от этого атрибута, является ли он также объектом формы, свойства которого мы собираемся заполнить?
forms
spring-mvc
modelattribute
Pulkit
источник
источник
<tag-name>Tag
. В этом случае для получения полного имени класса откройте библиотеку (.jar
), содержащую тегspring-web
. ПодMETA-INF
вы найдетеspring-form.tld
. Это будет иметь<tag>
записьform
с<tag-class>
изorg.springframework.web.servlet.tags.form.FormTag
.СТАРЫЙ СПОСОБ = имя команды
... <spring:url value="/manage/add.do" var="action" /> <form:form action="${action}" commandName="employee"> <div> <table> ....
НОВЫЙ ПУТЬ = атрибут модели
.. <spring:url value="/manage/add.do" var="action" /> <form:form action="${action}" modelAttribute="employee"> <div> <table> ..
источник
Некоторое время назад у меня был тот же вопрос, я не могу вспомнить точных различий, но из исследования я установил, что это
commandName
был старый способ сделать это, и в новых приложениях вы должны использоватьmodelAttribute
источник
commandName = имя переменной в области запроса или области сеанса, которая содержит информацию об этой форме, или это модель для этого представления. Это должно быть так.
источник
В конфигурации на основе xml мы будем использовать класс команды для передачи объекта между контроллером и представлениями. Теперь в аннотации мы используем
modelattribute
.источник