Que signifient les termes formBackingObject et ModelAttribute dans Spring MVC?
-
08-07-2019 - |
Question
Je suppose que je ne comprends pas la différence entre un " FormBackingObject " et un " ModelAttribute " au printemps MVC.
On dirait que les deux sont initiés et remplis par Spring avec une requête entrante.
La solution
Bonne question. Cela revient à une différence de terminologie entre Spring 2.0 MVC, qui utilisait une hiérarchie de classe de contrôleur, et Spring 2.5 MVC, qui utilisait des annotations.
L'objet "Form backing object" est l'objet que le AbstractFormController
de style Spring 2.0 (et des sous-classes comme SimpleFormController
) utiliserait pour lier les données de formulaire.
@ModelAttribute
fait à peu près la même chose pour les contrôleurs annotés de style Spring 2.5, mais de manière moins stricte.
Vous avez donc raison de dire que les deux font à peu près la même chose, mais le style est vraiment très différent. Ces deux approches sont valables et sont prises en charge dans Spring 2.5 (et 3.0).