Bonjour, désolé de remonter cet ancien topic mais ça correspond tout à fait à mon problème.
Donc voilà, je débute sur Struts et j'ai le même problème que David mais je n'ai pas réussis à le résoudre.
Je m'explique, en gros j'ai un premier formulaire, quand l'internaute valide on passe directement au 2eme formulaire, et lorsqu'on le valide on a un récapitulatif de toutes les informations saisies dans les 2 formulaires.
Comme David, les données saisies dans le premier formulaire ne s'affichent pas à la fin ( null ). Et ce même en passant les données du premier formulaire en caché dans le 2eme. Bon, j'aimerai bien trouver une solution sans avoir à les passer de cette manière de toute façon... mais j'ai juste essayé dans le doute.
Voilà mes fichiers (j'ai enlevé les parties inutiles pour plus de lisibilité) :
[--------------------------formulaire.personne.jsp-------------------------------]
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
...
<html:form action="/validerFormulaire1">
<table>
<tr>
<td>Pseudonyme</td>
<td><html:text property="pseudo" size="15" /></td>
</tr>
<tr>
<td>Mot de passe</td>
<td><html:password property="mdp" size="15" redisplay="false" /></td>
</tr>
<tr>
<td> <br></td>
</tr>
<tr>
<td>Nom</td>
<td><html:text property="nom" size="20"/></td>
</tr>
<tr>
<td>Prénom</td>
<td><html:text property="prenom" size="20" /></td>
</tr>
<tr>
<td>Age</td>
<td><html:text property="age" size="3"/></td>
</tr>
</table>
<br><br>
<table>
<tr>
<td><html:submit value="Valider"/></td>
<td><html:reset value="Rétablir"/></td>
<td><html:button property="btnEffacer" value="Effacer" onclick="effacer()"/></td>
</tr>
</table>
</html:form>
[-------------------------formulaire2.personne.jsp-----------------------------]
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%
// on récupère les données
String pseudo = (String)request.getAttribute("pseudo");
String mdp = (String)request.getAttribute("mdp");
String prenom = (String)request.getAttribute("prenom");
String nom = (String)request.getAttribute("nom");
String age = (String)request.getAttribute("age");
%>
...
<html:form action="/validerFormulaire2">
<table>
<tr>
<td>Adresse</td>
<td><html:text property="adresse" size="50"/></td>
</tr>
<tr>
<td>Code Postal</td>
<td><html:text property="cp" size="5"/></td>
</tr>
<tr>
<td>Ville</td>
<td><html:text property="ville" size="20"/></td>
</tr>
<tr>
<input text name="pseudo" value="<%=pseudo%>" type="hidden" />
<input text name="mdp" value="<%=mdp%>" type="hidden" />
<input text name="nom" value="<%=nom%>" type="hidden" />
<input text name="prenom" value="<%=prenom%>" type="hidden" />
<input text name="age" value="<%=age%>" type="hidden" />
</tr>
</table>
<table>
<tr>
<td><html:submit value="Valider"/></td>
<td><html:reset value="Rétablir"/></td>
<td><html:button property="btnEffacer" value="Effacer" onclick="effacer()"/></td>
</tr>
</table>
</html:form>
[-----------------------resultat.personne.jsp-------------------------------]
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%
// on récupère les données
String pseudo = (String)request.getAttribute("pseudo");
String mdp = (String)request.getAttribute("mdp");
String nom = (String)request.getAttribute("nom");
String prenom = (String)request.getAttribute("prenom");
String age = (String)request.getAttribute("age");
String adresse = (String)request.getAttribute("adresse");
String cp = (String)request.getAttribute("cp");
String ville = (String)request.getAttribute("ville");
%>
...
<table>
<tr>
<td>Pseudo</td>
<td><%= pseudo %>
</tr>
<tr>
<td>Mot de passe</td>
<td><%= mdp %>
</tr>
etc...
[----------------------struts-config.xml-----------------------------]
<struts-config>
<form-beans>
<form-bean
name="frmPersonne"
type="org.apache.struts.validator.DynaValidatorForm"
>
<form-property name="pseudo" type="java.lang.String" initial="" />
<form-property name="mdp" type="java.lang.String" initial="" />
<form-property name="nom" type="java.lang.String" initial="" />
<form-property name="prenom" type="java.lang.String" initial="" />
<form-property name="age" type="java.lang.String" initial="" />
</form-bean>
<form-bean
name="frmPersonne2"
type="org.apache.struts.validator.DynaValidatorForm"
>
<form-property name="adresse" type="java.lang.String" initial="" />
<form-property name="cp" type="java.lang.String" initial="" />
<form-property name="ville" type="java.lang.String" initial="" />
</form-bean>
</form-beans>
<action-mappings>
<action
path="/validerFormulaire1"
name="frmPersonne"
scope="session"
validate="true"
input="/erreurs.do"
type="FormulaireAction"
>
<forward name="reponse" path="/formulaire2.do" />
</action>
<action
path="/validerFormulaire2"
name="frmPersonne2"
scope="session"
validate="true"
input="/erreurs.do"
type="FormulaireAction2"
>
<forward name="reponse2" path="/resultat.do" />
</action>
<action
path="/erreurs"
parameter="/vues/erreurs.personne.jsp"
type="org.apache.struts.actions.ForwardAction"
/>
<action
path="/formulaire"
parameter="/vues/formulaire.personne.jsp"
type="org.apache.struts.actions.ForwardAction"
/>
<action
path="/formulaire2"
parameter="/vues/formulaire2.personne.jsp"
type="org.apache.struts.actions.ForwardAction"
/>
<action
path="/resultat"
parameter="/vues/resultat.personne.jsp"
type="org.apache.struts.actions.ForwardAction"
/>
</action-mappings>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
/>
</plug-in>
<message-resources parameter="ressources.personneressources" null="false"/>
</struts-config>
Voilà, désolé pour la présentation, ça fait quand même un peu "fouilli"...
Le problème vient peut être du fait que j'utilise un FormulaireAction pour chaque formulaire (FormulaireAction pour le premier, et FormulaireAction2 pour le 2eme) ?
Mais je ne vois pas vraiment comment organiser le FormulaireAction pour qu'il s'occupe de 2 formulaires différents...