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 @ModelAttributepara 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-weben este caso. DebajoMETA-INF, encontrarásspring-form.tld. Tendrá una<tag>entrada paraformcon 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
commandNameera la forma antigua de hacerlo y en las nuevas aplicaciones que deberías usarmodelAttributefuente
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