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 :

Récupération de l'ActionForm de la page suivante


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Par défaut Récupération de l'ActionForm de la page suivante
    Bonjour,

    J'utilise Struts 1.2.4 et je voudrais savoir s'il est possible de récupérer dans une classe Action le ActionForm de la page suivant? Je veux le récupérer pour pouvoir initialiser le prochain formulaire.

    Je voudrais avoir quelque chose dans ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class MonAction1 extends Action {
     
      public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        // Page2Form formDeLaPageSuivante = ??? C'est la que j'ai besoin d'aide
        // Initialisation de formDeLaPageSuivante
        return mapping.findForward('afficheLaPageSuivante');
      }
    }
    J'ai tenté ça mais ça créé une nouvelle instance au lieu de récupère celle utilisée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mapping.getModuleConfig().findFormBeanConfig("Page2Form").createActionForm(this.getServlet());

  2. #2
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Bonjour,

    Qu'entends tu par initialiser ton actionForm. Dans la mesure où l'accès à une page contenant un formulaire entraine un binding entre les attributs de l'actionForm et leur correspondance définis dans les balises de la jsp, tu peux supposer cette phase comme une période d'init. Il suffit alors que dans la classe action de la nouvelle page, tu passes les valeurs que tu souhaites avoir dans ton form pour qu'elles apparaissent au chargement de la page.

    Esperant avoir répondu au besoin

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Par défaut
    Merci de ton aide mais je ne vois pas comment faire ce que tu dis. J'explique un peu mieux ce que je veux faire.

    J'ai deux jsp avec chacune un formulaire (chacun lié à une classe Action -A1 et A2- et un ActionForm différent -F1 et F2-). Ce qui donne un mapping de ce style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	<action path="/validPage1" type="A1" name="F1" ...>
    		<forward name="page2" path="page2.jsp"/>
    	</action>
    	<action path="/validPage2" type="A2" name="F2" ...>
    		<forward name="page3" path="page3.jsp"/>
    	</action>
    Lorsque l'on valide le fomulaire de la page 1, on rentre dans A1 qui récupère les données du formulaire via F1. Ce que je veux faire ensuite, c'est afficher la page 2 avec son formulaire pré-rempli. Pour cela, il faut que A1 accède à F2 pour y mettre les valeurs à afficher (valeurs obtenues à partir du traitement de F1).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    class A1 extends Action {
     
      public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        F1 f1 = (F1)form;
        // Traitement ...
        F2 f2 = ???; //C'est la que j'ai besoin d'aide
        f2.setName("Champ pré-rempli");
        return mapping.findForward("page2");
      }
    }
    Ce que je ne trouve pas, c'est comment obtenir F2 dans A1.

  4. #4
    Expert confirmé

    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
    Par défaut
    Dans l'Action A1, tu peux créer une instance de l'ActionForm F2 et tu la mets en session sous le nom que tu as défini pour ce formulaire dans la balise form-bean du struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    F2 f2 = new F2() ;
    f2.setName("Champ pré-rempli");
    session.setAttribute("F2",f2) ;
    sans oublier de mettre le scope du form-bean F2 à session dans le mapping de l'Action A2 :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	<action path="/validPage2" type="A2" name="F2" scope="session" ...>
    		<forward name="page3" path="page3.jsp"/>
    	</action>

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 44
    Par défaut
    Ça fonctionne c_nvy.

    Merci

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

Discussions similaires

  1. récupération identifiant login dans la page suivante
    Par fidecourt dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2012, 14h01
  2. [MySQL] Incrémenter les pages suivante d'un livre si une page change
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 06/01/2006, 20h01
  3. Etat : comment passer à la page suivante
    Par Celia1303 dans le forum Access
    Réponses: 2
    Dernier message: 26/10/2005, 16h45
  4. detecter url page suivante
    Par misspiou dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/06/2005, 15h25
  5. Comment afficher les pages suivantes d'un QuickReport ?
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/06/2005, 12h54

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