In Spring 3 habe ich zwei verschiedene Attribute im Formular-Tag in jsp gesehen
<form:form method="post" modelAttribute="login">
In diesem Fall ist das Attribut modelAttribute der Name des Formularobjekts, dessen Eigenschaften zum Auffüllen des Formulars verwendet werden. Und ich habe es beim Posten eines Formulars und im Controller verwendet @ModelAttribute
, um Werte zu erfassen, Validator aufzurufen und Geschäftslogik anzuwenden. Alles ist gut hier. Jetzt
<form:form method="post" commandName="login">
Was wird von diesem Attribut erwartet? Ist es auch ein Formularobjekt, dessen Eigenschaften wir füllen werden?
quelle
<tag-name>Tag
. Öffnen Sie für den vollständig qualifizierten Klassennamen in diesem Fall die Bibliothek (.jar
), die das Tag enthältspring-web
. UnterMETA-INF
finden Siespring-form.tld
. Es wird einen<tag>
Eintrag fürform
mit einem<tag-class>
von habenorg.springframework.web.servlet.tags.form.FormTag
.OLD WAY = Befehlsname
NEUER WEG = modelAttribute
quelle
Ich hatte vor einiger Zeit die gleiche Frage, ich kann mich nicht an die genauen Unterschiede erinnern, aber aus der Forschung habe ich herausgefunden, dass dies
commandName
die alte Methode war und in neuen Anwendungen, die Sie verwenden solltenmodelAttribute
quelle
Befehlsname = Name einer Variablen im Anforderungs- oder Sitzungsbereich, die die Informationen zu diesem Formular enthält, oder dies ist ein Modell für diese Ansicht. Es sollte ein gewesen sein.
quelle
In der XML-basierten Konfiguration verwenden wir die Befehlsklasse, um ein Objekt zwischen Controller und Ansichten zu übergeben. Jetzt in Annotation verwenden wir
modelattribute
.quelle