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 :

Utilisation de deux formulaires dans une meme action


Sujet :

Struts 1 Java

  1. #1
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut Utilisation de deux formulaires dans une meme action
    Bonjour

    je veux savoir comment faire pour avoir la possibilité de travailler avec deux deux form dans une meme action. Je signale que je parle pas de disptach.
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public ActionForward monAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) 
    	{
            MyForm1 form1 = (MyForm1)form;
     
     
            MyForm2 form2 = (MyForm2)form;
    }
    et Merci.

  2. #2
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 123
    Points : 47
    Points
    47
    Par défaut
    Bonjour

    je crois que c'est impossible, tu ne peux pas caster form sur deux formulaires différentes myForm1 et myForm2.
    Celle que tu peux utiliser c'est celle que tu as submitter.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    Lorsque tu mappes ton action dans ton struts-config.xml, tu associes si besoin un Form à ton action.... Pourquoi ne fais tu pas deux actions différentes (une par Form)?

    En imaginant que tu mappes ton action sur deux Form différents en faisat un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form-beans>
        <form-bean name="Form1" type="form.Form1"/>
        <form-bean name="Form2" type="form.Form2"/>
    </form-beans>
    <action-mappings>
    <action path="/action1" name="Form1" type="action.TonAction">
          <forward name="succes" path="/jsp/gnagna.jsp"/>
          <forward name="echec" path="/jsp/error.jsp"/>
        </action>
        <action path="/action2" name="Form2"  type="action.TonAction">
          <forward name="succes" path="/jsp/gnagna.jsp"/>
          <forward name="echec" path="/jsp/error.jsp"/>
        </action>
    </action-mappings>
    en gras tu met la même Action classe, mais assossiée à deux path différents :
    path="/action1" & path="/action2", path que tu utiliseras dans ta jsp

    Il faudrait que dans ta jsp tu fasses :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html:form action="/action1">
    <input type="hidden" name = "castType" value = "Form1"/>
    ....<!--tes champs formulaire corresp aux champs de Form1--!>...
    	</html:form>
    <html:form action="/action2">
    <input type="hidden" name = "castType" value = "Form2"/>
    ....<!--tes champs formulaire corresp aux champs de Form2--!>...
    	</html:form>
    et dans ton action, au moment de concvertir le form, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(request.getParameter("castType").equals("Form1")){
    Form1 form1 = (Form1)form;
    }else{
    if(request.getParameter("castType").equals("Form2")){
    Form2 form2 = (Form2)form;
    }
    }
    Sachant que ca fait déjà pas mal de truc codés en dur...=> pas trè très propre, traduction : un peu bourrin....mais bon, si tu tiens absolument à faire ca....Je pense que de la manière dont je viens de t'indiquer....ca doit être faisable

    Bon courage

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    La solution de AnneB semble bonne, mais je pense que tu peux te passer de la bidouille des champs cachés, en faisant simplement dans ton action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (form instanceof Form1) {
    	Form1 form1 = (Form1)form;
    	... ton code ...
    } else { // ou else if (form instanceof Form2) {
    	Form2 form2 = (Form2)form;
    	... ton code ...
    }
    Et là, il me semble que t'as une solution assez propre.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    Pas mal En effet j'y avais pas pensé..... Si ca marche c'est sûr que c'est beaucoup plusq propre que ma bidouille avec les champs cachés.....Car beaucoup moins de trucs sont en dur et donc à changer obligatoirement si changement.....

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Merci .
    Oui, j'ai pas testé, mais ca doit forcément marcher car Struts instancie le form en fonction du form défini pour l'action appelée.

Discussions similaires

  1. utilisation de deux formulaire dans une action
    Par Melaba dans le forum Struts 1
    Réponses: 2
    Dernier message: 05/08/2008, 16h09
  2. Récupération de champs de deux formulaires dans le meme doPost
    Par organza94 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 03/04/2008, 14h15
  3. utiliser deux formulaire avec une seule action
    Par fouyou dans le forum Struts 1
    Réponses: 4
    Dernier message: 28/05/2007, 20h40
  4. UPDATE de deux tables dans une meme requete
    Par onizuka159 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/05/2007, 14h09
  5. Deux NuméroAuto dans une même table
    Par ginaub0 dans le forum Access
    Réponses: 1
    Dernier message: 31/07/2006, 17h13

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