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 ActionForward et ActionForm


Sujet :

Struts 1 Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Par défaut struts ActionForward et ActionForm
    Bonjour,

    Dans le fichier struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <action name="myForm" path="/traitementAction" type="..." 
       <forward name=continuer" path="/continuerAction.do" redirect="true"/>
       ...
    </action>
    <action name="myForm" path="/continuerAction" type="..." 
       ...
    </action>
    Dans la methode execute(ActionMapping mapping, ActionForm form, ...) TraitementAction je retourne
    return (mapping.findForward("continuer");


    je souhaite que l'ActionForm de la methode execute() de ContinuerAction soit le même que l'ActionForm de la methode execute() de TraitementAction afin que ContinuerAction puisse travailler avec les mêmes attributs de la form myForm.

    je recupere bien les attributs de myForm dans la methode execute() de TraitementAction mais pas dans la methode execute() de ContinuerAction.

    J'ai essayé redirect="true" et redirect="false" mais ca ne change pas.

    Est ce qu'il y a une solution pour que myForm soit le même dans les deux methodes execute() ?

    Merci.

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 3
    Par défaut
    Si je comprends bien tu veux récup les paramètres de ton formulaire dans le continuerAction ?
    Pourquoi ne pas faire utilisation de ta session ? à coup de setAttribute etc.. En faisant des remove aux bons moments, c'est assez propre et ce serait facile à mettre en place dans ton cas, je crois.

  3. #3
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Utilise les balises codes , cela rendra ton post + clair!

    Normalement pour que plusieurs actions utilisent le meme actionform il faut que l'attribut name dans la declaration des differentes actions pointes sur le form-bean.

    Est ce que tu as des messages d'erreur (genre classCastException)?

  4. #4
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Par défaut
    L'attribut name="myForm" est le même dans les deux Action decrites dans struts-config.xml.

    je n'ai pas de message d'erreur car dans execute() de ContinuerTraitement je teste les valeurs des attributs de myForm et je fais mon traitement en conséquence.

  5. #5
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Citation Envoyé par rCoudene
    Si je comprends bien tu veux récup les paramètres de ton formulaire dans le continuerAction ?
    Pourquoi ne pas faire utilisation de ta session ? à coup de setAttribute etc.. En faisant des remove aux bons moments, c'est assez propre et ce serait facile à mettre en place dans ton cas, je crois.
    Attention!!!
    Je ne suis pas d'accord, l'utilisation de la session pour le passage de parametre de maniere ponctuel n'est pas tres propre.

    L'utilisation de la session doit se limiter à des données contextuelles par exemple des informations utilisateurs....
    Les données que tu voudrais stocker en session relevent plutot du scope request (objet vivant uniquement dans le cadre d'un echange client /serveur... donc durée de vie tres courte).

    Il faut bien avoir à l'esprit que la session est un objet residant en memoire sur le serveur. cette objet est multiplié par le nombre d'utilisateur.. Donc si on surcharge trop la session le serveur va rapidement etre à court de memoire et tomber en "out of memory".

    Deplus le fait de stocker et supprimer manuellement des infos en session ne rend pas le code tres lisible et si il y a un oublie de suppression l'information restera en session avec pour consequence des problemes de memoire (voir ci dessus)

    voili voilou

  6. #6
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    hello,

    Pourrais tu afficher le code de tes actions?

  7. #7
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 25
    Par défaut
    J'ai trouvé la solution sur le site http://struts.apache.org/faqs/newbie.html#chaining

    lorsque je passe dans continuerAction la methode reset() de myForm est appellé au préalable, c'est lui qui reinitialise les attributs de myForm.

    il suffit donc de ne pas faire cette opération de reinitialisation dans la methode reset().

    Ca fonctionne maintenant.

    Merci à tous.

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

Discussions similaires

  1. [struts 1.1] ActionForm vide
    Par mafanta dans le forum Struts 1
    Réponses: 2
    Dernier message: 14/03/2011, 11h01
  2. [Struts] Problème d'ActionForm qui ne s'instancie pas
    Par vallica dans le forum Struts 1
    Réponses: 35
    Dernier message: 10/04/2006, 22h39
  3. Réponses: 3
    Dernier message: 11/10/2005, 23h27
  4. [STRUTS] Problème avec des ActionForm
    Par zarbydigital dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/03/2004, 13h49
  5. [Struts]ActionForm & reset
    Par djoukit dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/03/2004, 10h07

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