1. Méthode valider () en action
Struts2 fournit une interface validable, qui n'a que la méthode Validate () dans cette interface. La classe qui implémente cette interface peut être appelée directement par Struts2. La classe ActionSupport implémente l'interface vadidateable, mais sa méthode valide () est une méthode vide, que nous devons réécrire.
La méthode Validate () sera exécutée avant l'exécution de la méthode EXECUTE (). La méthode EXECUTE () ne sera exécutée que si la vérification des données est correcte. Si une erreur est commise, l'erreur sera ajoutée au champ Fielderrors. S'il existe plusieurs méthodes de traitement logique dans l'action définie et que différentes logiques de traitement nécessitent des règles de vérification différentes, dans ce cas, Validate () utilisera les mêmes règles de vérification pour toutes les logiques de traitement. Afin d'implémenter différentes logiques de vérification, il est nécessaire de passer la méthode Validatex (), où X représente le nom de la méthode de la logique de traitement.
Classe d'action:
classe publique Loginaction étend ActionSupport {private static final long SerialVersionUID = 1L; Private String username; private String userpassword; public String execute () {System.out.println ("execute"); return Success;} public String Login () {System.out.println ("Login"); Retour Success;} public Void Void Validate () {System.out.println ("validata");} public void validatelogin () {System.out.println ("validatelogin"); if (! (username.equals ("sbw") && userpassword.equals ("123")) {addForederror ("error", "tort info"); getUserName () {return username;} public void setUserName (String username) {this.userName = username;} public String getuserPassword () {return userpassword;} public void setterPassword (string userpassword) {this.UserPassword = userpassword;}}struts.xml
<package name = "main" étend = "struts-default"> <global-résults> <résultat name = "login"> / login.jsp </ result> </ global-résults> <action name = "Loginperson" metheth = "login"> <result name = "Success"> / Success.jsp </sult> <résultat> "Entrée"> / VALIDATELOGIN
succès.jsp
<body> Connexion avec succès <S: Property Value = "Account" /> </odody>
validatelogin.jsp
<body> <S: Fielderror /> </dody>
Résultats en cours (le premier test est correct, le deuxième test est faux)
2. Passez le cadre de vérification XWork
Lorsque vous utilisez la méthode Validate pour vérifier, s'il existe un grand nombre d'actions dans l'application Web, la méthode Validate doit être réécrite plusieurs fois. Par conséquent, vous pouvez utiliser le cadre du validateur de Xwork pour vérifier les données Struts2 pour réduire la quantité de code.
Créez un fichier de vérification LoginAction-validation.xml dans le package com.action. Remarque: Lorsqu'il existe plusieurs méthodes de traitement commercial dans une action, la règle de dénomination est: ActionName-Methodname-validation.xml, où ActionName est le nom de classe d'action, MethodName est le nom de la méthode d'une méthode de traitement commercial dans l'action, et l'ordre de recherche du fichier est le même que Validate () et Validatex ().
Login-validation.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Validators public "- // Apache Struts // Xwork Validator 1.0.2 // en" "http://struts.apache.org/dtds/xwork-validator-1.0..2.dtd"> <Validators> <Field Name = "Username"> <champ Type = "requiredString"> <Message> Le nom ne doit pas null </ message> </field-validator> </field> <field name = "userpassword"> <champ-validator type = "requiredString"> <message> Le mot de passe ne doit pas null </ message> </field-validator> </field> </validator>
Courez à nouveau comme suit:
La méthode de vérification de champ ci-dessus est la méthode de vérification du champ, et une autre méthode est la méthode de vérification sans champ, comme suit:
Login-validation.xml:
<Avalidators> <Validator Type = "OBLIEDSTRING"> <param name = "FieldName"> Nom d'utilisateur </ param> <Message> Le nom ne doit pas null </ message> </validator> <Validator Type = "requiredString"> <param name = "fieldname"> userpassword </ param> <mourde>
Le résultat est le même que la méthode de vérification du champ
Attachement: Vérifiants couramment utilisés pour Struts2: