Le printemps des annotations @ModelAttribute et @Valide
Quels sont les avantages de l'utilisation de @ModelAttribute
et @Valid
?
Quelles sont les différences?
Est-il possible de les utiliser ensemble?
Merci d'essayer de poser une question.
Ils sont liés.
Ils sont liés.
OriginalL'auteur vdenotaris | 2014-03-26
Vous devez vous connecter pour publier un commentaire.
@ModelAttribute
est utilisé pour mapper/lier un paramètre d'une méthode ou d'une méthode de type de retour pour un nom d'attribut du modèle. Voir @ModelAttributes JavaDoc. C'est un Printemps annotation.@Valid
est une annotation qui marque un objet pour La JSR-303 bean validation. Voir @Valides JavaDoc. Il fait partie de JavaEE 6, mais je pense que Hibernate a une mise en œuvre plus haut que la plupart des gens utilisent à la place.L'avantage de l'utilisation de
@ModelAttribute
est que vous pouvez mapper un formulaire entrées à un haricot. L'avantage de@Valid
est que vous pouvez utiliser de la JSR-303 bean validation pour s'assurer que le haricot qui est fait est validé par rapport à un ensemble de règles.Oui, vous pouvez utiliser
@ModelAttribute
et@Valid
ensemble.La meilleure façon de transférer des données à partir d'un formulaire (sic Vue) pour le Modèle objet est de suivre le classique/traditionnel modèle de conception MVC à l'aide de Printemps. Mon meilleur moyen est d'avoir un formulaire dans une page JSP avec le Printemps JSTL
<form:*>
tags, avec unmodelAttribute
ensemble. Sur le Contrôleur de disposer d'un gestionnaire d'accepter le POSTE à partir de la forme qui correspond à un@ModelAttribute
c'est un haricot qui représente la forme de l'entrée. Je ne puis passer qui "Forme " Haricot" pour une couche de service de faire certaines choses, notamment la traduction de la "Forme " Haricot" dans tous les modèles si nécessaire (pas nécessaire si la forme est la création de vos objets de modèle directement) et sauvegarde/mise à jour/etc via un DAO. Ce n'est qu'une façon de faire les choses, mais c'est probablement l'essentiel de ce que je fais avec le Printemps, ma journée-à-jour de travail.Je très vous recommandons de lire le Printemps des matériaux de référence et en suivant les tutoriels. Les matériaux de référence sont très bien écrit, facile à suivre, et comprend de nombreux exemples sur les différentes façons dont vous pouvez faire les choses au Printemps, et il y a souvent quelques options sur la façon dont vous faites les choses au Printemps.
@Valid
où je travaille, parce que nous ne mettons pas les erreurs de forme suivant pour les commandes de notre point de Vue (nous lancions notre formulaire de validation des erreurs là-haut dans une liste), et vous ne pouvez pas contrôler la façon dont la JSR-303 validation des erreurs se produisent. Cette décision a été prise ans avant j'ai commencé à travailler ici, donc je n'étais pas partie. Personnellement, je préfère la JSR-303 de validation en raison de sa facilité d'utilisation.Tout d'abord, je vous remercie beaucoup. Je suis à la recherche d'un code-extrait de code suivant montre comment utiliser correctement cette fonction. Maintenant, dans mon projet, je fais référence à cet exemple (printemps.io/guides/gs/validation du formulaire d'entrée), mais il utilise seulement @Valide.
Le
@ModelAttribute
dans cet exemple est implicite. C'est comme si elle était là. Regarder dansHandlerMethodArgumentResolver
.Pour plus de commodité, voici le Printemps 4 documents de référence pour la JSR-303 de validation. Très en vaut la lire: docs.printemps.io/printemps/docs/4.0.2.PRESSE/...
OriginalL'auteur CodeChimp
veuillez vérifier les ci-dessous une partie bof printemps de la documentation de référence:
En plus de la liaison de données, vous pouvez également appeler la validation à l'aide de votre propre validateur personnalisé passant de la même BindingResult qui a été utilisé pour enregistrer les données de liaison des erreurs. Qui permet la liaison de données et les erreurs de validation pour être accumulés en un seul endroit et par la suite signalé à l'utilisateur:
Ou vous pouvez avoir la validation automatiquement invoqué par l'ajout de la JSR-303 @Valide annotation:
oui, vous pouvez vérifier exemple complet dans le lien de printemps de référence docs.printemps.io/printemps/docs/4.0.3.PRESSE/...
OriginalL'auteur Bassem Reda Zohdy