Bonjour.
j'ai pas mal cherché sur le forum, mais je n'ai pas trouvé la réponse à mon problème, alors je me décide à poster.
J'ai des données réparties sur plusieurs pages. Chaque page possède son formulaire et son action. J'utilise aussi le dispatchAction pour avoir plusieurs comportements en rapport avec un formulaire.
Mon problème est que je n'arrive pas à passer d'information d'un formulaire à l'autre quand je passe d'une action à l'autre. En création ce n'est pas un problème, mais en modification il en va autrement...
Le cheminement que je cherche à avoir est le suivant :
Action 1 : Chargement des données, remplissage du formulaire
Page 1 : Affichage des données, modification
Action 1 : Récupération du formulaire, sauvegarde des données
Action 2 : Chargement des données, remplissage du formulaire 2
Page 2 : Affichage des données.
J'utilise le fichier Struts-config suivant :
Il y a des paramêtres qui sont présents dans les deux formulaires :
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
20
21 <form-bean name="beanStep1" type="package.MonBean1"/> <form-bean name="beanStep2" type="package.MonBean1"/> <action path="/nodeCreateStep1" type="package.Action1" name="beanStep1" scope="request" validate="false" parameter="dispatch"> <forward name="page" path="/jsp/Step1.jsp" /> <forward name="next" path="/nodeCreateStep2.do" redirect="true"/> </action> <action path="/nodeCreateStep2" type="package.Action2" name="beanStep2" scope="request" validate="false" parameter="dispatch"> <forward name="page" path="/jsp/Step2.jsp" /> <forward name="next" path="/nodeCreateStep3.do" redirect="true"/> </action>
dispatch et id
dispatch me permet de distinguer l'entrée dans le formulaire (et le chargement des données) de la sortie (et la sauvegarde des données).
id est l'identifiant de mon objet à modifier, élément clé pour retrouver les données dans la base.
Le premier formulaire passe très bien, le chargement est ok, et la sauvegarde après modification est effectuée. Là où ça ne passe plus, c'est quand le forward est déclenché après sauvegarde.
A première vue, la redirection est brute, le formulaire n'est pas passé à mon action, et sans dispatch, je ne sais pas si je dois charger ou sauvegarder les données du formulaire, et sans id, je ne sais pas quelles données utiliser...
Que toutes les données ne passent pas d'un bean à l'autre, c'est normal, mais que les données communes ne soient pas passées non plus m'étonne davantage. Il semblerait que la requête soit débarassée de tout ses paramêtres.
Des suggestions ?
Je précise que si j'enlève le redirect=true, je récupère bien mes éléments, mais cette solution ne me plait que moyennement. Je préfèrerais éviter de me trainer la même URL d'un bout à l'autre de mon application...
Il doit bien y avoir un moyen de passer des paramêtres dans un forward, non ?
Partager