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 1 Java Discussion :

[Struts] Re-initialisation de mon Form


Sujet :

Struts 1 Java

  1. #1
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut [Struts] Re-initialisation de mon Form
    Bonjour,

    Actuellement je developpe sous du Struts 1.1.
    Lors de la validation de mon formulaire une erreur apparait (ce qui est prevu par le système) et ensuite je l'affiche par du ActionErrors dans ma page jsp.

    Cependant j'ai rajouté un bouton effacer qui appel une action Struts pour re-initialiser mes champs. (Elle se situe dans mon form Bean).

    Cela marche très bien avant de valider mon Form de ma page jsp mais si après la validation du Form et après l'affichage de l'erreur sur la page JSP, l'utilisateur decide d'effacer les données alors le message d'erreur réapparait au lieu de me reinitialiser completement mon Form de ma page jsp.

    Quelqu'un aurait il une idée ?

    Merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut Re: [Struts] Re-initialisation de mon Form
    Citation Envoyé par cosmos38240
    Bonjour,

    Actuellement je developpe sous du Struts 1.1.
    Lors de la validation de mon formulaire une erreur apparait (ce qui est prevu par le système) et ensuite je l'affiche par du ActionErrors dans ma page jsp.

    Cependant j'ai rajouté un bouton effacer qui appel une action Struts pour re-initialiser mes champs. (Elle se situe dans mon form Bean).

    Cela marche très bien avant de valider mon Form de ma page jsp mais si après la validation du Form et après l'affichage de l'erreur sur la page JSP, l'utilisateur decide d'effacer les données alors le message d'erreur réapparait au lieu de me reinitialiser completement mon Form de ma page jsp.

    Quelqu'un aurait il une idée ?

    Merci
    t'utilise la méthode reset pour réinitialiser les données??

  3. #3
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Non j'utilise une méthode spécifique car la reset se déclenche à des moments non désirés dans mon développement.

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Où fais tu la réinitialisation des données : à partir de ton action ou dans ta méthode validate ?

    Comment as tu configuré ton mapping d'action ? As-tu activer la validation automatique ?

    quelques extraits de ton code et de ton mapping serait le bien venu pour t'aider.

  5. #5
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    difficile à dire comme ca, donne du code?

    Tu utilises une autre action pour effacer ton form?

    Si oui est ce que tu as mis l'attribut validate="false" afin qu'il ne fasse pas de validation du formulaire lors de la l'effacement?
    Etre c'est etre relatif.

  6. #6
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Désolé je n'ai pas été très précis.

    Ma réinitialisation des données ce fait dans une action struts spécifique pour ça dans un dispatchAction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public ActionForward effacerForm (ActionMapping mapping,
    ActionForm form, HttpServletRequest request,
    HttpServletResponse reponse) throws Exception {
    // ActionErrors errors = new ActionErrors();
    CreerActifForm creerActifForm = (CreerActifForm) form;
    creerActifForm.effacerDstm();
     
    return mapping.findForward("success");
     
    }
    Je suis obliger da valider en automatique sinon cela me plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <action-mappings>
    <action path="/creerActif"	type="com.struts.actions.CreerActifAction"
    	name="creerActifForm" scope="session" unknown="false"
    	validate="true"
    	input="/jsp/CreerActif.jsp?error=true"
    	parameter="hidden">
    <forward name="success" path="/jsp/CreerActif.jsp"
    	redirect="false" />
    </action>
    Et dans ma page JSP pour appeler l'action Struts spécifique pour réinitialiser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function effacerForm() 
    {
    setHidden('effacerForm');
    document.creerActifForm.submit();
    }
    Désolé je ne connais pas bien Struts

    Merci

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Je vois deux solutions à essayer :

    1- Ne pas faire de validation automaitque de ton formulaire et gérer cette validation manuellement dans les autres méthodes de ta dispatchAction.

    2- Laisser la validation automaitque mais mettre dans le code de ta méthode validate un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (!"effacerForm".equals(this.hidden)) {
     
    // Faire ta validation
     
    }
    ainsi ta validation ne se fera pas si est est dans le mode "effacer le formulaire".

  8. #8
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Merccccccccciiiiiiiiii

    En fait j'avais déja l'option 2 sur un autre champ mais le problème c'est que je ne reinitialisais pas ce champ lors de l'effacement de mon Form (je gardais une ancienne valeur fausse pour ce cas) ce qui fait que je rentrais dans la boucle de test dans la validation.

    J'ai donc juste rajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    document.creerActifForm.boutonAction.value = null; //Initialisation manquante
    setHidden('effacerForm');
    document.creerActifForm.submit();
    Merci sans vous j'y serais encore à comprendre d'où cela pouvais provenir ...


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

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/11/2008, 21h26
  2. Réponses: 5
    Dernier message: 03/07/2007, 14h06
  3. Réponses: 4
    Dernier message: 29/07/2005, 11h47
  4. [Struts]control dans la class form
    Par jimi dans le forum Struts 1
    Réponses: 8
    Dernier message: 01/06/2005, 16h50
  5. [Struts] Comment initialiser les valeurs d'un formulaire
    Par Sniper37 dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/04/2005, 15h02

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