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 :

Initialiser un formulaire dans l'action précédant la page.


Sujet :

Struts 1 Java

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 949
    Points : 1 855
    Points
    1 855
    Par défaut Initialiser un formulaire dans l'action précédant la page.
    Bonjour,

    Je voudrais initialiser les données du formulaire (ActionForm) d'une page jsp dans l'Action qui précède.

    Mais quand j'accède à la page en question, les champs restent blanc!

    Je ne suis pas sûre de la façon dont on communique le formulaire de l'action à la page jsp : il faut bien créer une instance du bean, remplir les champs, le placer comme attribut de la requête?

    Dans l'action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Formulaire formulaire = new Formulaire();
    formulaire.setChamp1("valeur1");
    // ...
    request.setAttribute("Formulaire"; formulaire);
    Dans struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form-bean name="Formulaire" type="nomPackage.Formulaire"/>
    Et dans la page jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <html:form name="Formulaire">
    <bean:write name="Fomulaire" property="champ1" scope="request"/>
    </html:form>
    Merci d'avance.

  2. #2
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans le struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <form-beans>
       <form-bean name="formulaire" type="nomPackage.Formulaire"/>
    </form-beans>
     
    <action-mappings>
       <action path="/initFormulaireAction" type="nomPackage.InitFormulaireAction"
               name="formulaire" scope="request" validate="false">
            <forward name="success" path="/formulaire.jsp"/>
       </action>
    </action-mappings>
    Dans l'Action, tu mets à jour le formulaire lié à l'Action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Formulaire formulaire = (Formulaire) form ;
    formulaire.setChamp1("valeur1");
    Dans la jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <bean:write name="formulaire" property="champ1"/>

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 949
    Points : 1 855
    Points
    1 855
    Par défaut
    Merci pour la réponse. J'ai essayé, mais celà ne fonctionne pas. Si je ne me trompe pas, cette déclaration dans struts-config sert à lire les données du formulaire reçu, pas à l'initialiser pour la page suivante, n'est-ce pas? Je cherche comment écrire le formulaire de la page suivante, pas lire celui de la page précédente.

    A moins que je n'ai rien compris.

  4. #4
    Expert éminent

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Points : 7 778
    Points
    7 778
    Par défaut
    Dans l'exemple que j'ai donné, la classe InitFormulaireAction initialise le formulaire avant l'appel de la jsp qui l'affiche, ce que tu souhaites faire si j'ai bien compris.
    Donc, ça devrait fonctionner.

    Quel message d'erreur as-tu ?
    Peux-tu montrer ton code (jsp,Action,struts-config) ?

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    949
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 949
    Points : 1 855
    Points
    1 855
    Par défaut
    Oups... Il manquait la déclaration des taglibs.
    Ah, la joie de travailler sur une appli où certaines pages utilisent Stuts et d'autres non. Et aucun message d'erreur.
    Merci pour votre aide, sans quoi j'aurai encore cherché des heures, convaincu que le problème venait de struts-config.xml.
    En attendant, je note qu'il faut déclarer le formulaire même en sortie seulement. Mais dans ce cas, comment fait-on quand on veut recevoir un formulaire puis en émettre un autre?

    Encore merci.

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

Discussions similaires

  1. [PHP 5.3] Variable du formulaire dans l'action du form
    Par MisterGrouik dans le forum Langage
    Réponses: 2
    Dernier message: 08/03/2010, 13h24
  2. Réponses: 9
    Dernier message: 05/11/2008, 21h26
  3. utilisation de deux formulaire dans une action
    Par Melaba dans le forum Struts 1
    Réponses: 2
    Dernier message: 05/08/2008, 16h09
  4. Réponses: 5
    Dernier message: 20/07/2007, 14h11
  5. Passage dans l'Action form dès l'initialisation
    Par rikunter dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/04/2006, 09h35

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