Frühling 3 Referenz lehrt uns:Was bedeutet @ModelAttribute-Annotation auf Methodenargumentebene?
Wenn Sie es auf einem Parameter-Methode platzieren,
@ModelAttribute
bildet ein Modell-Attribut auf den spezifischen, kommentierte Methodenparameter
Ich verstehe nicht, diese Zauberspruch, weil ich sicher bin, dass der Alias des Modellobjekts (Schlüsselwert bei Verwendung von ModelMap
als Rückgabetyp) nach Ausführung der Anforderungshandlermethode an View übergeben wird. Daher kann der Name des Modellobjekts nicht auf den Methodenparameter abgebildet werden, wenn die Request-Handler-Methode ausgeführt wird.
Um diesen Widerspruch zu lösen, ging ich zu stackoverflow und fand this ausführliches Beispiel. Der Autor Beispiel sagte:
// Das "personAttribute" -Modell hat an den Controller aus der JSP bestanden
Es scheint, wurde er von Frühling Referenz begeistert ist ...
Um die Reize zu vertreiben, habe ich seine Beispiel-App in meiner Umgebung eingesetzt und @ModelAttribute Annotation aus der Methode MainController.saveEdit()
grausam geschnitten. Als Ergebnis funktioniert die Anwendung ohne Änderungen! So schließe ich: Die Annotation @ModelAttribute
wird nicht benötigt, um die Feldwerte des Webformulars an die Felder des Arguments zu übergeben. Dann blieb ich bei der Frage: Was ist der Durchschnitt von @ModelAttribute
Annotation? Wenn das einzige Mittel darin besteht, Alias für das Modellobjekt in View zu setzen, warum dann besser als das explizite Hinzufügen eines Objekts zu ModelMap
?