1. Il existe une méthode valide () dans ActionSupport. Cette méthode est une méthode de vérification. Il sera exécuté avant l'exécution de la méthode EXECUTE (), afin qu'il puisse jouer un bon rôle dans la vérification.
@Override // Réécriture de la méthode validate () en action publique void validate () {if (null == this.username || this.username.length () <4 || this.username.length ()> 6) {this.addactionRorror ("username invadate");}} un. Si la vérification échoue, nous pouvons appeler AddActionError ("Message d'erreur"); De cette façon, le message d'erreur sera enregistré.
Une fois l'intégralité de la méthode Validate exécutée, le système vérifiera automatiquement la page JSP correspondant à name = "entrée". Il est généralement recommandé de passer à la page que nous nous sommes inscrits, c'est-à-dire d'où nous venons et d'où nous allons
/gisterResult.jsp/register.jsp
né Alors nous sommes registres.jsp
Autrement dit, ajoutez cette balise Struts2 à la page d'inscription initiale
<s: ActionError cssstyle = "Color: Red" />
Le sens est: s'il y a un message d'erreur, c'est-à-dire que ActionError existe, puis publiez ce message d'erreur.
De plus, nous pouvons définir les balises sur CSS
// Notez que l'utilisation des balises Struts2 doit introduire des balises dans le fichier d'en-tête: <% @ taglib prefix = "s" uri = "/ struts-tags"%>
c.
Un moyen de comparer les dates:
Brithday et Graduate sont des types de dates
if (null! = anniversaire && null! = graduation) {calendar c1 = calendar.getInstance (); c1.settime (anniversaire); calendar c2 = calendar.getInstance (); c2.settime (graduation); if (! c1.before (c2)) {this.addactionError ("anniversaire devrait être avant l'obtention du graduation");}}2. Niveau d'action et niveau de champ. De cette façon, nous pouvons ajouter à différents niveaux lors de l'ajout d'erreurs, et nous pouvons être plus flexibles lors de l'incitation aux messages d'erreur, sans ajouter toutes les informations au niveau d'action, toutes les informations seront affichées de la même manière. Par exemple: nous devons utiliser des polices rouges pour représenter le message d'erreur des erreurs de mot de passe répétées, tandis que d'autres informations, telles que le nom d'utilisateur, l'âge, etc., sont représentées dans des polices vertes. Pour le moment, vous pouvez l'ajouter à différents niveaux en l'utilisant.
Sur la page d'inscription, écrivez simplement une balise au niveau du champ. comme suit:
<S: ActionError cssStyle = "Color: Red" // Niveau d'action <S: Fielderror CssStyle = "Color: Blue"> </ S: Fielderror> // Niveau de champ public Void validate () {if (null == this.username || this.username.length () <4 || this.username.length ()> 6) {this.addactionError ("username invadate"); // ajouter un message d'erreur à un niveau d'action this.addFielderror ("username", "username invadate in champ"); // ajouter le message d'erreur pour le jeu de terrain}}3. Après avoir envoyé une erreur, les informations d'origine seront affichées dans le formulaire.
<S: Form Action = "RegisterAction"> <S: TextField Name = "Username" Label = "Username"> </ S: TextField> <S: Password Name = "Motway" Label = "Motway"> </ S: Motword> <S: Motword Name = "Repassword" Label = "Repassword"> </ S: TextField Name = "Age" Label = "Brithday"> </ S: TextField> <S: TextField Name = "Graduate" Label = "Graduate"> </ S: TextField> <S: Soumider Value = "Soumide"> </ S: Soumis> </ S: Form>
À l'aide de la balise Struts2, il peut taper automatiquement puis afficher les informations incorrectes du niveau de champ comme indiqué ci-dessous.
4. Cependant, bien que cette méthode d'utilisation automatique des tables à taper soit pratique, elle ne répond pas à nos besoins dans de nombreux cas, nous pouvons donc utiliser la composition personnalisée.
Méthode 2: Définissez la méthode de mise en page en simple, afin que nous puissions le taper nous-mêmes dans la méthode HTML.
Les erreurs au niveau du champ ne seront pas automatiquement affichées.
<s: formulaire action = "registre" thème = "Simple"> <br/> nom d'utilisateur: <s: textfield name = "username" label = "username"> </ s: textfield> <br/> mot de passe: <s: mot de passe name = "mot de passe" label = "mot de passe"> </ s: mot de passe> <br/> repassword: <s: mot de passe name = "Répavre" " Label = "Repassword"> </ s: mot de passe> <br/> Âge: <S: TextField name = "Age" label = "Age"> </ S: TextField> <br/> anniversaire: <S: TextField Name = "Birthday" Label = "Brithday"> </ S: TextField> <br/> Graduate: <S: TextField Name = "Graduate" Label = "Graduate"> </ S: Value = "Soumider"> </ S: Soumis> </ S: Form>
5. Pour la sécurité, Struts est soumis en poste lorsqu'aucune méthode n'est définie, ce qui est plus sûr.
6. Si la valeur d'entrée ne est pas conforme à la méthode, par exemple, l'âge est de type int et que l'entrée est de type de chaîne, le système jugera et ajoutera une valeur de champ non valide pour le champ "Age" au niveau du champ. Les informations sont les suivantes:
Processus d'exécution:
1) Conversion de type de type d'abord
2) Ensuite, effectuez la validation d'entrée (exécutez la méthode Validate)
3) Si une erreur se produit dans le processus ci-dessus, la méthode d'exécution ne sera plus exécutée. La page se tourne vers la page dans strut.xml dont le nom est le résultat correspondant à l'entrée.
8. Implémentation de la méthode AddACTACSERROR () de la classe ActionSupport: Créez d'abord un objet ArrayList, puis ajoutez un message d'erreur à l'objet ArrayList.
9. Par conséquent, les éléments de la copie sont toujours effacés en appelant la méthode Clear () sur la copie de collection, plutôt que les éléments de la collection originale. À l'heure actuelle, le contenu de la collection originale n'a reçu aucun impact. En d'autres termes, les listes de messages d'erreur au niveau de l'action sont lisibles pour les développeurs, mais pas écrivains
Si vous souhaitez supprimer le message d'erreur après valider et le laisser exécuter la méthode d'exécution même s'il y a un message d'erreur, vous pouvez appeler ce
10. Le message d'erreur sous-jacent au niveau de Fielderror est implémenté via LinkedHashmap. La clé de la carte est le type de chaîne et la valeur est la liste <string> type. Cela signifie qu'un nom de champ peut correspondre à plusieurs messages d'erreur, et ces messages d'erreur sont placés dans la collection List <string>. Ainsi, il y a plusieurs messages d'erreur pour obtenir la même erreur
Ce qui précède est une explication détaillée de la méthode de vérification utilisée pour saisir Validate () dans Struts introduit par l'éditeur. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!