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] Comment modifier un formulaire (dans la requete)


Sujet :

Struts 1 Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 58
    Points : 52
    Points
    52
    Par défaut [Struts] Comment modifier un formulaire (dans la requete)
    Bonjour,

    J'ai un formulaire Form associé à une page JSP et 2 actions: une action Event et une action Builder.

    Lorsque l'utilisateur génére un évenement sur la page JSP, le formulaire est soumis à l'action Event. Selon l'évenement, le formulaire est mis à jour ou non. Event est ensuite redirigé vers l'action Builder qui lui s'occupe de "formater" à nouveau la page JSP.

    Ces 2 actions utilisent le même formulaire (car elles sont liées à la même page JSP). Le problème est lorsque je modifie ce formulaire dans l'action Event, ces modifications ne sont pas récupérer dans l'action Builder.
    J'ai détaillé comment Struts créé le formulaire. En fait il fait un mapping à la volé avec les valeurs qui sont stocké dans la request. Lorsque je modifie donc l'objet Form dans Event, ces modifications ne sont pas sauvegardé dans la requête, car dans l'action Builder, Struts me regénère l'objet Form avec les valeurs d'origines.

    Existe t-il un moyen de sauvegarder le formulaire au niveau de la requête pour pouvoir le récupéré modifié dans une deuxième action ?

    En espérant d'avoir été clair...
    Merci.

    --
    Bicnic

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Salut,

    suivant la définition de ton form, il peut etre sauvegardé soit en request, soit session ou application..
    Donc il suffit s'il est e session de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.getAttribute("nomForm");

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    Mon formulaire se trouve dans la request. J'avais pensé à passer par la session, mais je voudrais éviter de la surcharger avec mes formulaires.

    C'est pourquoi je me demande si il est possible de modifier les formulaires au niveau de la request.


    --
    Bicnic.

  4. #4
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Donne nous le bout de code ou tu met le form a jour et le bout de xml qui gere cette action dant le struts-config

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 58
    Points : 52
    Points
    52
    Par défaut
    Mon fichier 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
     
    <form-beans>
    	<form-bean name="bankForm" type="com.applitest.web.form.BankForm" />
    </form-beans>
     
    ...
     
    <action-mappings>
    	<!-- Events -->
    	<action path="/bank-event" name="bankForm" type="com.applitest.web.event.BankEvent" validate="false" scope="request">
    		<forward name="success" path="/bank-builder.do" />
    		<forward name="failure" path="bank.transaction" />
    	</action>
     
    	<!-- Builders -->
    	<action path="/bank-builder" name="bankForm" type="com.applitest.web.builder.BankBuilder" validate="false" scope="request">
    		<forward name="success" path="bank.transaction" />
    	</action>
    </action-mappings>
    Le premier passage se fait dans BankEvent:
    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
     
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception
    {
    	BankForm bankForm = (BankForm) form;
    	String action = request.getParameter("action");
     
    	// actions - count
    	int count = bankForm.getCount();
    	count++;
     
    	// Modifie le formulaire
    	bankForm.setCount(count);
     
    	target = "success";
    	return mapping.findForward(target);
    }
    Le forward success renvoi vers BankBuilder où je désire récupérer le formulaire modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public ActionForward execute(ActionMapping mapping, ActionForm _form, HttpServletRequest request, HttpServletResponse response) throws Exception
    {
    	String target = "failure";
     
    	BankForm form = (BankForm) _form;
    	// ici le formulaire n'a pas les modifications provenant de BankEvent
     
    	// ...
     
    	target = "success";
    	return mapping.findForward(target);
    }
    Merci.

    --
    Bicnic.

Discussions similaires

  1. Réponses: 8
    Dernier message: 31/07/2006, 12h52
  2. Comment modifier un champ dans une table liée ?
    Par HookerSeven dans le forum Access
    Réponses: 11
    Dernier message: 05/02/2006, 23h50
  3. Réponses: 2
    Dernier message: 12/01/2006, 08h34
  4. comment modifier les widgets dans une fenètre??
    Par afrikha dans le forum GTK+ avec C & C++
    Réponses: 6
    Dernier message: 14/10/2005, 14h48
  5. Réponses: 6
    Dernier message: 30/04/2004, 15h53

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