Au printemps 3, j'ai vu deux attributs différents dans la balise form dans jsp
<form:form method="post" modelAttribute="login">
dans ce cas, l'attribut modelAttribute est le nom de l'objet de formulaire dont les propriétés sont utilisées pour remplir le formulaire. Et je l'ai utilisé pour publier un formulaire et dans le contrôleur, j'ai utilisé @ModelAttribute
pour capturer la valeur, appeler validateur, appliquer la logique métier. Tout va bien ici. Maintenant
<form:form method="post" commandName="login">
Qu'attend cet attribut, est-ce aussi un objet de formulaire dont nous allons renseigner les propriétés?
la source
<tag-name>Tag
. Pour le nom de classe complet, ouvrez la bibliothèque (.jar
) contenant la balise,spring-web
dans ce cas. SousMETA-INF
, vous trouverezspring-form.tld
. Il aura une<tag>
entrée pourform
avec un<tag-class>
deorg.springframework.web.servlet.tags.form.FormTag
.OLD WAY = commandName
NEW WAY = modelAttribute
la source
J'ai eu la même question il y a quelque temps, je ne me souviens pas des différences exactes, mais à partir de recherches, j'ai constaté que
commandName
c'était l'ancienne façon de le faire et que dans les nouvelles applications, vous devriez utilisermodelAttribute
la source
commandName = nom d'une variable dans l'étendue de la demande ou l'étendue de session qui contient les informations sur ce formulaire, ou c'est le modèle pour cette vue. Ça devrait être un été.
la source
Dans la configuration basée sur xml, nous utiliserons la classe de commande pour passer un objet entre le contrôleur et les vues. Maintenant en annotation, nous utilisons
modelattribute
.la source