No Spring 3, eu vi dois atributos diferentes na tag form em jsp
<form:form method="post" modelAttribute="login">
neste, o atributo modelAttribute é o nome do objeto de formulário cujas propriedades são usadas para preencher o formulário. E eu usei para postar um formulário e no controlador eu usei @ModelAttribute
para capturar valor, chamando validador, aplicando lógica de negócios. Está tudo bem aqui. Agora
<form:form method="post" commandName="login">
O que é esperado por este atributo, é também um objeto de formulário cujas propriedades iremos preencher?
forms
spring-mvc
modelattribute
Pulkit
fonte
fonte
<tag-name>Tag
. Para o nome de classe totalmente qualificado, abra a biblioteca (.jar
) que contém a tag,spring-web
neste caso. AbaixoMETA-INF
, você encontraráspring-form.tld
. Ele terá uma<tag>
entrada paraform
com um<tag-class>
deorg.springframework.web.servlet.tags.form.FormTag
.OLD WAY = commandName
NEW WAY = modelAttribute
fonte
Eu tive a mesma pergunta há um tempo atrás, não consigo me lembrar das diferenças exatas, mas pela pesquisa eu verifiquei que
commandName
era a maneira antiga de fazer isso e em novos aplicativos você deve usarmodelAttribute
fonte
commandName = nome de uma variável no escopo da solicitação ou escopo da sessão que contém as informações sobre este formulário, ou este é o modelo para esta visão. Tt deveria ser um estado.
fonte
Na configuração baseada em xml, usaremos a classe de comando para passar um objeto entre o controlador e as visualizações. Agora, na anotação que estamos usando
modelattribute
.fonte