En Spring 3, he visto dos atributos diferentes en la etiqueta de formulario en jsp
<form:form method="post" modelAttribute="login">
en este, el atributo modelAttribute es el nombre del objeto de formulario cuyas propiedades se utilizan para completar el formulario. Y lo usé para publicar un formulario y en el controlador que he usado @ModelAttribute
para capturar valor, llamar al validador, aplicar la lógica comercial. Todo está bien aquí. Ahora
<form:form method="post" commandName="login">
¿Qué se espera de este atributo, es también un objeto de formulario cuyas propiedades vamos a poblar?
fuente
<tag-name>Tag
. Para obtener el nombre de clase completo, abra la biblioteca (.jar
) que contiene la etiqueta,spring-web
en este caso. DebajoMETA-INF
, encontrarásspring-form.tld
. Tendrá una<tag>
entrada paraform
con una<tag-class>
deorg.springframework.web.servlet.tags.form.FormTag
.VIEJA MANERA = commandName
NEW WAY = modelAttribute
fuente
Hace un tiempo tuve la misma pregunta, no puedo recordar las diferencias exactas, pero de la investigación descubrí que esa
commandName
era la forma antigua de hacerlo y en las nuevas aplicaciones que deberías usarmodelAttribute
fuente
commandName = nombre de una variable en el alcance de la solicitud o el alcance de la sesión que contiene la información sobre este formulario, o este es el modelo para esta vista. Debería ser un estado.
fuente
En la configuración basada en xml, usaremos la clase de comando para pasar un objeto entre el controlador y las vistas. Ahora en la anotación estamos usando
modelattribute
.fuente