IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

contrôle des champs (validation) XML à l'initialisation


Sujet :

Struts 2 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut contrôle des champs (validation) XML à l'initialisation
    Bonjour,

    j'ai rencontré un petit soucis sur mon appli et j'aimerai savoir si struts 2 peut bien résoudre mon problème:

    en fait je fait le contrôle des champs via le fichier XML et j'aimerai savoir si struts 2 offre la même option que Struts 1 qui permet de mettre validation en false dans notre action dans le fichier struts-config.xml lors de l'initialisation de ma page par exemple.

    si j'explique en détail : quand je charge ma page j'ai mes champs vides donc automatiquement il m'affiche ma page avec les erreurs de contrôle de validation que je mes dans le fichiers de MonAction-validate.xml!!!

    merci pour vos réponses.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    Je ne suis pas certain de bien comprendre ta question, mais normalement, tes validations devraient porter le nom de l'action pour lequel tu veux qu'elles soient appelées (Ex : Actions-enregistrer-validation.xml), donc elles ne devraient pas être appeler quand tu initialises ta page (à moins que tu utilises la même action pour initialiser et enregistrer???). Tu peux toujours essayer l'annotation @SkipValidation au dessus de la définition de ton action que tu ne veux pas voir validée, mais ça sert plus à ne pas exécuter les validations de ton objet qui sont définies avec les annotations.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    tout d'abord un grand merci pour ta réponse.

    OUI je pense que t'a bien compris mon soucis,
    par contre à part la solution que t'a proposé avec les annotations, y a t il une autre solution avec les fichiers XML?

    sinon oui j'utilise la même classe pour l'initialisation et l'enregistrement.
    et d'après toi il vaudrai mieux pour moi d'utiliser deux classes différentes : une pour l'initialisation et l autre pour l'enregistrement? c'est sur que dans ce cas là mon soucis est résolu...

    mais j'aimerai connaitre l'équivalent de la syntaxe qui fait ça en struts1 : validate="false"? car je pense que c'est plus propre.

    merci d'avance

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    Avec Struts 2, si tu veux que tes validations définies dans tes fichiers xml ne soit pas exécutés lors de l'appel d'une action, c'est très simple, tu as juste à ne pas créer de fichier de validation pour cette action. En effet, tu as la possibilité de créer un fichier de validation par action.

    Pour ce qui est de Struts 1, j'utilisais des classes différentes pour chacune de mes actions, donc je n'avais pas ce problème.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    je ne comprend pas ce que tu veux dire par fichier de validation!!!

    pour moi le fichier de validation c'est le fichier XML où je mets mes validation et qui prend la forme de nom suivante: MyClass-validation.xml
    mais dans ce cas c'est quoi alors le fichier de validation et comment faire pour le définir?

    si t'a un exemple ça sera très gentil de ta part.

    grand merci d'avance.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    Tu peux te faire un fichier MyClass-validation.xml, mais tu peux aussi de la même façon et au même endroit créer des fichiers de validations par action, par exemple : MyClass-enregistrer-validation.xml, MyClass-supprimer-validation.xml...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    tu parle des actions qui sont dans ton fichier struts.xml??

    et du coup si tu fais ça, tu sera obligé de mettre pour chaque action que t'a défini dans ton fichier struts.xml un fichier...c'est pas pratique je trouve, enfin si c'est bien cela.

    exemple donc:

    struts.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    action enregistrer
    action supprimer
    ...etc
    mon action : MyClassAction.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    traitement 
    +
    getter et setter
    et enfin il faut donc mettre des fichiers de validation pour chaque actions définie, donc il y aura autant de fichiers de validation que d'actions

    1 er fichiervalidation: Myclass-enregistrer-validation.xml
    2 em fichiervalidation: Myclass-supprimer-validation.xml
    ...etc

    merci de votre réponse.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    En gros, c'est ça. Seulement, je ne trouve pas que ça donne trop de fichiers étant donné que mes validations sont nécessaires seulement sur quelques actions.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    Et il ne faut pas oublier que j'utilise des annotations directement sur mes objets pour valider les longueur de champs et certains formats.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	@StringLengthFieldValidator(trim = true, maxLength = "500", message = "Le sujet est trop long. (500 caractères maximum)")
    	public String getSujet() {
    		return sujet;
    	}
    Ainsi, ce qui se trouve dans les fichiers est seulement ce qui est propre à une action en particulier.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    je te remercie, je vais essayer avec ça et je te tiens au courant.

    [EDIT] finalement je viens d'essayé, ça marche très bien, je te remercie encore une fois.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    en faite la méthode que tu m'a montré fonctionne bien.

    sauf que là je ne sais pas pourquoi j'ai un problème quand je mes un fichier de validation pour une action d'enregistrement (utilisant hibernate 3) ça plante.

    donc j'ai décidé de faire ça avec des annotations, par contre du coup je rencontre le problème initial c'est à dire, il me fait le contrôl à l'initialisation de la page!!!
    ma question ; c'est quoi l'équivalent en annotation de la méthode que tu m'a montré avec les fichier XML pour ne pas valider à l'initialisation.

    merci d'avance

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2009
    Messages : 14
    Par défaut
    Tu as juste à ajouter @SkipValidation au dessus de la déclaration des actions dont tu ne veux pas que les validations soient effectuées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @SkipValidation
    	public String chargerItem() throws Exception {
    		[...]
    	}

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 33
    Par défaut
    Je te remercie ça marche très bien.

  14. #14
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut
    Jarrive peut un peu tard....

    Mais il est tout a fait possible de d'exlure certaine methodes d'action de ta classe pour la validation sans passer par le @SkipValidation.

    En effet, quand tu regardes la stack default des interceptors, tu vois que la l'interceptor validation est executée.
    la solution pour toi, ca serait de nomemr l'action qui permet de charger ta page en input (cest une convention struts 2). Du coup tu n'as plus qu'as definir une validation pour ta class

  15. #15
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 75
    Par défaut
    Jarrive peut un peu tard....

    Mais il est tout a fait possible de d'exlure certaine methodes d'action de ta classe pour la validation sans passer par le @SkipValidation.

    En effet, quand tu regardes la stack default des interceptors, tu vois que la l'interceptor validation est executée.
    la solution pour toi, ca serait de nomemr l'action qui permet de charger ta page en input (cest une convention struts 2). Du coup tu n'as plus qu'as definir une validation pour ta classe action MyClassAction-validation.xml.

    Cette validation sera appliquer sur toutes les actions de ta classe sauf celle qui s'appelle input. Car quand tu consulte la doc http://struts.apache.org/2.x/docs/validation.html tu constate que l'interceptor validation de la default stack exclue les methodes input,back,cancel,browse.

    Voial voila...on esperant avoir aider dautres personnes ..a+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. contrôles des champs saisis dans un formulaire
    Par barouz dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 06/12/2013, 13h55
  2. comment désactivé le contrôle des champs?
    Par lapirouze dans le forum ASP.NET
    Réponses: 3
    Dernier message: 24/03/2010, 11h31
  3. Contrôle des champs d'un formulaire
    Par nechi.zakaria dans le forum Langage
    Réponses: 5
    Dernier message: 30/06/2008, 14h23
  4. contrôle des champ d'un tableau
    Par Chikh001 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 04/03/2008, 13h45
  5. Contrôle des champs de mon formulaire
    Par kebson dans le forum Langage
    Réponses: 5
    Dernier message: 09/08/2007, 12h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo