Maison > Java > javaDidacticiel > Comment Struts2 gère-t-il les erreurs de conversion et de validation et garantit-il une saisie correcte ?

Comment Struts2 gère-t-il les erreurs de conversion et de validation et garantit-il une saisie correcte ?

Patricia Arquette
Libérer: 2024-11-30 06:15:13
original
525 Les gens l'ont consulté

How Does Struts2 Handle Conversion and Validation Errors and Ensure Proper Input?

Comprendre le résultat INPUT de Struts2 et gérer les erreurs de conversion/validation

Erreurs de conversion/validation : erreurs de non-blocage

Struts2 traite les erreurs de conversion et de validation comme erreurs de saisie plutôt que de bloquer les erreurs. Cela signifie qu'il ne génère pas d'exceptions, mais informe l'utilisateur et demande une entrée valide.

Comment ça marche

  1. Intercepteur de paramètres : Tentatives de définition des paramètres . Si une exception d'exécution telle que NumberFormatException se produit, elle est gérée ou enregistrée.
  2. Intercepteur d'erreurs de conversion : Vérifie les erreurs de conversion et ajoute des erreurs de champ en conséquence. Les valeurs d'origine sont enregistrées pour afficher la saisie correcte lors des demandes ultérieures.
  3. Intercepteur de validation : Effectue les validations demandées et ajoute des erreurs de champ pour les champs non valides.
  4. Intercepteur de flux de travail : Vérifie les erreurs de champ. S'il n'y en a pas, l'exécution continue. Si des erreurs sont détectées, un résultat INPUT est renvoyé.

Ordre correct des intercepteurs

Pour garantir le fonctionnement du mécanisme, les intercepteurs suivants doivent être présents dans le fichier personnalisé Empiler dans le bon ordre :

  • Intercepteur de paramètres
  • Erreur de conversion Intercepteur
  • Intercepteur de validation
  • Intercepteur de workflow

Question secondaire : les alphabets à zéro

Lorsqu'un alphabet est saisi dans un champ entier, c'est le comportement par défaut pour le getter de ce champ pour renvoyer 0 (si int est utilisé).

Gestion des valeurs d'origine

L'intercepteur de conversion prétend enregistrer les valeurs d'origine pour les requêtes ultérieures. Cependant, il existait un bug où ce comportement n'était pas cohérent si l'attribut value était utilisé dans la balise JSP. Ce bug a été corrigé, la valeur d'origine devrait donc s'afficher correctement dans les requêtes suivantes.

Bonnes pratiques

  • Configurez correctement la pile d'intercepteurs.
  • Vérifiez le code , en particulier l'utilisation de l'attribut value.
  • Si vous utilisez l'attribut value, utilisez la syntaxe correcte, par exemple, value = "%{myIntField}".
  • Pour les tests, supprimez d'abord l'attribut value pour confirmer le comportement, puis déboguez pour trouver le bogue.

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