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 :

Passage dans l'Action form dès l'initialisation


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 53
    Points
    53
    Par défaut Passage dans l'Action form dès l'initialisation
    Bonjour,

    Je soumets ici une petite question concernant le fonctionnement Struts :
    - Est-il possible de ne déclencher l'action form (celui qui a la méthode execute) que lorsqu'on soumet le formulaire ?
    En effet, mon problème est le suivant :
    Lorsque mon formulaire s'affiche, il déclenche la méthode reset() de mon form associé DEUX FOIS, puis le validate() de ce même form et enfin, le execute() de l'action et enfin le formulaire s'affiche dans la page web...
    Je souhaiterais savoir s'il existe donc un moyen de ne passer dans l'action que lors du submit.

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Points : 316
    Points
    316
    Par défaut
    Salut,

    Comment tu l'appelle ta jsp qui contient le formulaire?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Il s'agit en fait de 2 formulaires qui se lancent le second par rapport au premier.
    Le premier est une liste (tableau) et lorsque je clique sur une ligne, j'appelle le second avec un mapping.findForward(chaine) avec "chaine" déclaré dans l'action du premier formulaire de mon struts-config.xml.
    Remarque, j'ai placé des System.out.println() dans chaque action et actionform des deux formulaires et pour le premier tout se passe bien, il fait le reset() puis lorsque je choisi une ligne il fait reset() + validate() + execute().
    Le mieux est un morceau de code que voici :

    struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
        <form-beans>
            <form-bean name="formulaireForm" type="forms.FormulaireForm"/>
        </form-beans>
     
         <global-forwards>
             <forward name="formulaire" path="/formulaireAction.do"></forward>
         </global-forwards>
     
         <action-mappings>
              <action path="/formulaireInitialise"
                   type="actions.FormulaireInitialise" name="formulaireForm"
                   validate="false">
              </action>
              <action path="/formulaireAction" type="actions.FormulaireAction"
                   name="formulaireForm" input="formulaire" validate="true">
                        <forward name="OK" path="formulaire" />
                        <forward name="RETOUR" path="liste"></forward>
              </action>
         </action-mappings>

    Action du premier formulaire, méthode execute()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         return mapping.findForward("OK");
    le mapping.findForward("OK"); correspond à un tag forward de mon struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <forward name="OK" path="/formulaireInitialise.do" />
    dans l'action de formulaireInitialise j'ai toutes les initialisations puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return mapping.findForward("formulaire");
    Lors de l'exécution, il passe directement dans la méthode execute() de formulaireInitialise puis, il fait le reset() et le validate() de formulaireForm puis l'execute() de formulaireAction... Du coup, j'ai un peu de pb à initialiser correctement mes checkbox dans le formulaireAction puisqu'il passe dedans avant le submit().

    merci, j'espère que j'ai été assez clair....

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 53
    Points
    53
    Par défaut
    C'est bon, j'ai réussi à remédier à mon pb....
    j'ai viré l'action initialiser et passé mon scope en request et tout fonctionne à merveille !

    merci encore et à bientôt

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 05/11/2008, 21h26
  2. Initialiser un action form dans un iterate
    Par mastamx dans le forum Struts 1
    Réponses: 8
    Dernier message: 13/02/2008, 07h31
  3. problème de passage non désiré dans l'action d'un click
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/04/2007, 17h55
  4. l'attribut ACTION dans la balise FORM
    Par coco-sup dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/02/2007, 12h02
  5. Initialiser un formulaire dans l'action précédant la page.
    Par BugFactory dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/02/2007, 12h29

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