Dans la série (4) et (5), nous montrons comment lier les données et comment assurer l'exactitude des données que nous obtenons après les données de liaison? C'est ce dont nous allons parler dans cet article -> Vérification des données.
Ici, nous utilisons le validateur hibernate pour la vérification. Hibernate-Validator implémente le cadre de vérification JSR-303 pour prendre en charge la vérification du style d'annotation. Tout d'abord, nous devons télécharger le package JAR requis sur http://hibernate.org/validator/. Ici, nous utilisons 4.3.1.Final comme démonstration. Après la décompression, ajoutez les trois packages Hibernate-Validator-4.3.1.Final.jar, Jboss-Logging-3.1.0.jar, validation-api-1.0.0.ga.jar au projet.
Configurez le fichier Springservlet-Config.xml dans le projet précédent, comme suit:
<! - Prise en charge du mappage d'annotation par défaut -> <MVC: annotation-Driven Validator = "Validator" Conversion-Service = "Conversion-Service" /> <Bean Id = "Validator"> <propriété name = "providerClass" value = "org.hibernate.validator.hibernatevalidator" /> <! ClassPath -> <propriété name = "validationMessagesource" ref = "validateMessageSource" /> </ bean> <bean id = "Conversion-Service" /> <bean id = "validateMessagesource"> <propriété name = "Basename" value = "classpath: validateMessages" /> <propriété name = "fileencoding name = "cacheseconds" value = "120" /> </ank>
Le ClassPath: validateMessages dans <Property Name = "Basename" value = "classPath: validateMessages" /> est le fichier où se trouve le message de vérification d'annotation, et nous devons l'ajouter dans le dossier Ressources.
Ajoutez un contenu validateController.java dans le package com.demo.web.Controllers comme suit:
package com.demo.web.Controllers; import java.security.nosuchalgorithMexception; import javax.validation.valid; import org.springframework.sterreotype.Controller; import org.springframework.ui.model; import org.springframework.validing.bindersult; org.springframework.web.bind.annotation.modelattribute; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestMethod; import com.demo.web.models.validateModel; @ Côleur @ pairmaping = "/ valider") classe publique validateController {@RequestMapping (value = "/ test", méthode = {requestMethod.get}) Public String test (modèle modèle) {if (! Model.ContaintAttribute ("ContentModel")) {Model.Addattribute ("ContentModel", New ValidateModel ()); } return "validateTest"; } @RequestMapping (value = "/ test", méthode = {requestMethod.post}) Public String Test (modèle modèle, @valid @modelattribute ("ContentModel") validateModel validateModel, bindingResult Result test (modèle); retourner "validatescuss"; }}@Valid @modelAttribute ("ContentModel") validateModel validateModel @valid signifie vérifier après avoir lié les données à @ModeLattribute ("ContentModel").
Ajoutez un contenu validatemodel.java dans le package com.demo.web.models comme suit:
package com.demo.web.models;import org.hibernate.validator.constraints.Email;import org.hibernate.validator.constraints.NotEmpty;import org.hibernate.validator.constraints.Range;public class ValidateModel{ @NotEmpty(message="{name.not.empty}") private Nom de chaîne; @Range (min = 0, max = 150, message = "{age.not.inrange}") Private String Age; @Notempty (message = "{email.not.empty}") @email (message = "{email.not.correct}") Email de chaîne privée; public void setName (String name) {this.name = name; } public void Setage (String Age) {this.age = age; } public void setEmail (chaîne e-mail) {this.email = e-mail; } public String getName () {return this.name; } public String getage () {return this.age; } public String getEmail () {return this.email; }}Ajoutez le contenu suivant dans le fichier où se trouve le message de vérification d'annotation, le fichier validatemessages.properties:
name.not.empty = / u540d / u79f0 / u4e0d / u80fd / u4e3a / u7a7a / u3002age.not.inrange = / u5e74 / u9f84 / u8d85 /u51fa/u8303/u56f4/u3002email.not.correct=/U90AE/U7BB1/U5730/U5740/U4E0D/U6B63/U786E/U3002EM Ail.not.empty = / u7535 / u5b50 / u90ae / u4e0d / u80fd / u60df / u6050 / u3002email.not.empty = / u7535 / u5b50 / u 90ae / u4e0d / u80fd / u6050 / u3002email.not.empty = / u7535 / u5b50 / u90ae / u4e0d / u80fd / u60df / u6050 / u3002
Parmi eux, name.not.empty, etc. correspondent au nom xxx dans message = ”xxx” dans le fichier validatemodel.java. Le contenu suivant est entré dans le codage ASCII qui est automatiquement converti en chinois. Bien sûr, vous pouvez également écrire XXX directement en tant que contenu rapide sans créer un autre fichier validateMessages.Properties et l'ajout. Cependant, cela est incorrect, car si vous le cocotez, vous ne pourrez pas l'internationaliser.
Ajoutez deux vues dans le dossier des vues, validateTest.jsp et validatesuccess.jsp, respectivement:
<% @ page Language = "Java" contentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <! DocType Html Public "- // W3C // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose. taglib prefix = "form" uri = "http://www.springframework.org/tags/form"%> <html> <adread> <meta http-equiv = "content-type" contenu = "text / html; charset = utf-8"> <title> title d'insertion ici </ title> ModelAttribute = "ContentModel" Method = "Post"> <form: errors path = "*"> </ formulaire: erreurs> <br/> Nom: <form: entrée path = "name" /> <br/> <form: errors path = "name"> </ form: errers> <br/> Âge: <form: Errors Path = "Age" E-mail: <formulaire: entrée path = "age"> </ formulaire: erreurs> <br/> path = "e-mail" /> <br/> <form: errors path = "e-mail"> </ formulaire: erreurs> <br/> <input type = "soume" value = "soumi" /> </ form: form> </ body> </ html>
<% @ Page Language = "Java" ContentType = "Text / Html; charSet = UTF-8" Pageencoding = "UTF-8"%> <! Doctype HTML Public "- // W3C // DTD HTML 4.01 Transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" contenu-type "contenu =" text / html; charset = utf-8 "> <pitle> insert le titre ici </ title> </ head> <body> Vertification est réussi! </ body> </html>
Il est particulièrement important de souligner que le nom xxx après ModelAttribute = "xxx" dans la vue validatest.jsp doit être cohérent avec le nom xxx dans la @valid @modelattribute correspondante ("xxx"), sinon les données du modèle et les informations d'erreur ne seront pas liées.
<formulaire: erreurs path = "name"> </ form: erreurs> affichera les informations d'erreur pour les attributs correspondants du modèle. Lorsque path = "*", les informations d'erreur pour tous les attributs du modèle sont affichées.
Exécutez le test:
Cliquez pour soumettre directement:
Vous pouvez voir le message d'erreur selon lequel les paramètres sont correctement affichés.
Remplissez des données incorrectes à soumettre:
Vous pouvez voir que le message d'erreur qui est toujours affiché correctement.
Remplissez les données correctes à soumettre:
Vous pouvez voir que la vérification est réussie.
Voici les principales notes et instructions de vérification:
Le contenu de vérification des données se termine ici, téléchargement de code: démo
Pour plus d'informations, veuillez consulter le document officiel: http://docs.jboss.org/hibernate/validator/4.3/reference/en-us/html/validator-usingvalidator.html
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.