Maison > Java > javaDidacticiel > Comment Struts2 gère-t-il les erreurs d'entrée et renvoie-t-il un résultat INPUT ?

Comment Struts2 gère-t-il les erreurs d'entrée et renvoie-t-il un résultat INPUT ?

Mary-Kate Olsen
Libérer: 2024-12-01 12:52:10
original
241 Les gens l'ont consulté

How Does Struts2 Handle Input Errors and Return an INPUT Result?

Comment fonctionne le résultat d'entrée dans Struts2 ?

Le résultat INPUT de Struts2 est déclenché lorsque l'intercepteur de workflow détecte des erreurs de champ, soit à partir de erreurs de conversion ou de validation. Plutôt que de déclencher des exceptions, ces erreurs sont considérées comme des erreurs de saisie, donc un résultat INPUT est renvoyé pour demander la correction de la saisie de l'utilisateur.

Gestion des erreurs de conversion/validation

Struts2 Le mécanisme de gestion des erreurs implique plusieurs étapes clés :

  1. Paramètre Intercepteur : Tente de définir les paramètres. Si une exception d'exécution se produit pendant la conversion (par exemple, NumberFormatException), elle est avalée silencieusement ou enregistrée avec une notification du développeur.
  2. Intercepteur d'erreurs de conversion : Identifie toutes les erreurs de conversion et ajoute des erreurs de champ à ActionContext. . Il stocke également les valeurs d'origine pour garantir qu'elles sont affichées à l'utilisateur si le champ contient des erreurs de validation.
  3. Intercepteur de validation : effectue des validations basées sur XML, des annotations ou des méthodes d'action. Si la validation échoue, elle ajoute des erreurs de champ au ActionContext pour chaque champ non conforme.
  4. Workflow Interceptor : Vérifie les erreurs de champ lors de la conversion et de la validation. Si des erreurs existent, il renvoie un résultat INPUT ; sinon, il passe à l'intercepteur suivant.

Pour activer ce mécanisme, assurez-vous que les intercepteurs suivants sont définis dans le bon ordre :

<interceptor-ref name="params"/>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation"/>
<interceptor-ref name="workflow"/>
Copier après la connexion

Remarque supplémentaire sur Integer Conversion

Pour gérer la conversion de caractères non numériques en zéro, évitez d'utiliser la valeur attribut en conjonction avec un getter qui renvoie un type de données int. Cela peut provoquer une erreur de conversion supplémentaire et entraîner une valeur de 0. Utilisez plutôt la syntaxe suivante :

<s:textfield name="myIntField"/>
Copier après la connexion

Ou

<s:textfield name="myIntField" value="%{myIntField}"/>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal