Préface
La vérification des données est une tâche que presque toutes les applications doivent faire. Les données entrées par l'utilisateur sont envoyées au serveur. Dieu sait si les données entrées par l'utilisateur sont légales et si elles sont malveillantes. Par conséquent, un système d'application robuste doit vérifier les entrées de l'utilisateur, bloquer les entrées illégales en dehors de l'application et empêcher ces entrées illégales d'entrer dans le système, garantissant ainsi la stabilité et la sécurité du système.
Nous savons tous que pour une meilleure expérience utilisateur et une efficacité plus élevée, les applications Web actuelles ont les deux vérifications de données suivantes:
La vérification des données du client est principalement effectuée via le code JavaScript; La vérification des données côté serveur est la dernière ligne de défense pour l'ensemble de l'application pour bloquer les données illégales et est principalement implémentée par programmation dans l'application.
Afin de réduire la charge de travail des développeurs et d'améliorer l'efficacité du travail, le cadre Struts2 a également fait beaucoup d'efforts dans la vérification des données. Alors, comment Struts2 complète la vérification des données? (Étant donné que la capacité de vérification du client du framework Struts2 est faible, elle ne sera pas résumé. Cet article résume principalement la fonction de vérification des données côté serveur du framework Struts2)
Écriture de dossiers de règles de vérification
Nous savons tous que la vérification des données est tout le code lourd. Afin de sortir de ces codes encombrants, le framework Struts2 fournit une vérification des données basée sur des fichiers de configuration. Il faut uniquement rédiger un fichier de règle de vérification. Le fichier de règle de vérification spécifie les règles que chaque champ de formulaire devrait se rencontrer.
Parlons de la vérification d'entrée de Struts2 Framework via un exemple de démonstration.
Page de réception:
<body> <form action = "ligin" metheth = "post"> nom d'utilisateur: <input type = "text" name = "name" /> <s: Fielderror fieldName = "name" /> <br> mot de passe: <input type = "mot de passe" name = "mot de passe" /> <s: champs de champs de champ = "Âge" / <s: fowerr> Âge: <Entrée = "Text" Name = "Age" /> <S: FIELDROR: <Entrée type = "Text" Name = "Age" /> <S: FIELDROR: <Entrée = "Text" fieldname = "age" /> <br> anniversaire: <input type = "text" name = "anniversaire" /> <s: Fielderror fieldName = "anniversaire" /> <br> <input type = "soume" value = "soume" /> </ form> </body>
Code de traitement de l'action de fond:
La classe publique LoginAction étend ActionSupport {Nom de chaîne privée; mot de passe de chaîne privé; Âge privé; anniversaire de rendez-vous privé; Astuce de chaîne privée; public void setName (String name) {this.name = name; } public String getName () {Nom de retour; } public void setPassword (String Motword) {this.password = mot de passe; } public String getPassword () {return mot de passe; } public void Setage (int Age) {this.age = age; } public int getage () {return âge; } public void SetBirthday (date d'anniversaire) {this.birthday = anniversaire; } Public Date getBirthday () {retour anniversaire; } public void Settip (String Tip) {this.tip = TIP; } public String getTip () {return tip; } public String execute () lève l'exception {// l'opération est simplifiée ici. retourner le succès; }}Grâce au code d'action ci-dessus, nous pouvons voir que je n'ai ajouté aucun code de vérification de champ, mais nous n'avons qu'à rédiger un fichier de vérification, comme suit:
<? xml version = "1.0" Encoding = "UTF-8"?> <! - Spécifiez les informations DTD du fichier de configuration de vérification -> <! Doctype Validators public "- // apache struts // xwork validator 1.0.2 // en" "http://struttes.ad mord Vérifiez l'élément racine du fichier de vérification -> <validators> <! - Vérifiez l'attribut de nom du fichier de configuration de vérification -> <champ name = "name"> <! - Spécifiez que l'attribut de nom doit respecter les règles requises -> <champ-Validator Type = "requisestring"> <param name = "Trim" Faites correspondre l'expression régulière -> <champ-validator type = "regex"> <param name = "regexExpression"> <! [CDATA [(/ w {4,25})]]> </param> <Message> Le nom d'utilisateur que vous entrez peut être unique name = "mot de passe"> <champ-validator type = "requiredString"> <param name = "Trim"> true </ param> <mord> le mot de passe doit être entré </ message> </ champ-validator> <champ-validator type = "regex"> <param name = "regexexpression"> <! [CDATA [(/ w {4,25})]]]] Entrée ne peut être que des lettres et des nombres, et la longueur doit être comprise entre 4 et 25 </sessage> </Field-Validator> </ Field> <! - Vérifiez l'attribut d'âge de l'action -> <champ name = "Age"> <champ-validator type = "int"> <param Name = "Min"> 1 </ param> <param name = "Max"> 150 </ param> <mand> </Field-Validator> </ Field> <! - Vérifiez la propriété d'anniversaire de l'action -> <champ nom = "anniversaire"> <champ-validator type = "Date"> <param name = "Min"> 1900-01-01 </param> <param name = "Max"> 2050-02-21 </ param> <mand> L'anniversaire doit être entre $ {min} et $ {max} </Field-Validator> </field> </validators>Les règles de fichier de vérification de Struts2 sont différentes de la méthode de conception du fichier de vérification de Struts1. Chaque action dans Struts2 a un fichier de vérification, de sorte que le nom du fichier du fichier de vérification doit se conformer aux règles suivantes:
<Nom d'action> -validation.xml
Le nom d'action précédent peut être modifié, la pièce de -validation.xml ultérieure est toujours corrigée et le fichier de vérification doit être enregistré dans le même chemin que le fichier de classe d'action.
Semblable à l'échec de la conversion de type, lorsque la vérification d'entrée échoue, Struts2 renvoie également automatiquement un résultat nommé "entrée", il est donc nécessaire de configurer un résultat nommé "entrée" dans le fichier strut.xml.
Internationalisation Informations promptes
En cas d'échec de vérification, l'utilisateur doit être invité à des messages d'erreur. Alors maintenant, un problème se pose. Dans un environnement multi-langues, comment provoquer correctement les informations d'invite de langue correspondantes? Il n'est pas possible de l'écrire directement dans le fichier de vérification comme ci-dessus. Pour les informations d'invite d'internationalisation, spécifiez l'attribut clé pour l'élément de message, qui spécifie la clé correspondant aux informations d'invite d'internationalisation.
Par exemple, le fichier de vérification ci-dessus peut être à peu près écrit comme ceci:
<! - Vérifiez l'attribut de nom de l'action -> <field name = "name"> <! - L'attribut de nom spécifié doit respecter les règles requises -> <field-validator type = "requiredString"> <param name = "Trim"> true </ param> <message key = "name.required" /> </ field-validator> <! - L'attribut de nom spécifié doit correspondre à l'expression régulière -> <validator> <validator> <! type = "regex"> <param name = "regexExpression"> <! [cdata [(/ w {4,25})]]> </ param> <message key = "name.regex" /> </ champ-validator> </field>Vérificateur intégré
Dans le fichier de vérification ci-dessus, vous pouvez voir une telle déclaration:
<field-validator type = "requiredString"> <field-validator type = "regex"> ...
La valeur d'attribut type ici est le vérificateur. Il existe un grand nombre de dispositifs de vérification intégrés fournis dans le cadre Struts2. Ces dispositifs de vérification intégrés peuvent répondre aux besoins de vérification de la plupart des applications. Nous avons seulement besoin d'utiliser ces dispositifs de vérification.
Nous pouvons utiliser l'outil de décompression pour ouvrir le fichier xwork-core-2.3.24.1.jar. Dans le cadre du XWork-Core-2.3.24.1.jar / com / opensymphony / xwork2 / validator / validator, nous pouvons trouver un fichier default.xml. Ce fichier est le fichier d'enregistrement de périphérique de vérification par défaut pour Struts2, et le contenu est le suivant:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Validators public "- // apache Struts // Xwork Validator Definition 1.0 // en" "http://struts.apache.org/dtds/xwork-validator-defintion-> <Validat <! - Vérificateur obligatoire -> <validator name = "requis" /> <validator name = "requis" /> <! - entier Verifier -> <validator name = "int" /> <! - Vérifier entier long -> <validator name = "long" /> <! name = "double" /> <! - Date Verifier -> <Validator name = "Date" /> <! - Expression Verifier -> <Validator Name = "Expression" /> <! - Field Expression Verifier -> <Validator Name = "FieldExpression" /> <! name = "Visitor" /> <validator name = "Visitor" /> <validator name = "conversion" /> <validator name = "conversion" /> <validator name = "stringLength" /> <validator name = "regex" /> <validator name = "conditionalVisitor" /> </validator> <! - end snippet: validator-default -->
En ce qui concerne l'utilisation spécifique de ces dispositifs de vérification, je ne donnerai pas d'exemples ici.
Résumer
Cet article résume brièvement les dispositifs de vérification du cadre Struts2. Les bases des dispositifs de vérification mentionnés ici sont comment les utiliser. La chose la plus importante est de maîtriser l'idée de dispositifs de vérification Struts2 et de les compléter par la configuration. Cette méthode vaut la peine d'être apprise. Dans notre apprentissage d'autres cadres, nous rencontrerons également cette méthode. Étude, douleur et bonheur.
D'accord, ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.