J'essaye d'utiliser le taglib nested avec les formulaires composés, mais je rencontre une erreur.
J'ai deux beans :
Un action form :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class Personne implements Serializable { private String nom, prenom, email; private Adresse adresse = new Adresse(); //getters and setters } public class Adresse implements Serializable { private String numero, voie, nom; //getters and setters }
J'ai une page formulaire.jsp pour remplir les informations concernant l'individu
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class Identite extends ActionForm { private Personne personne = new Personne(); //getters and setters }
Et une autre page adresse.jsp pour les coordonnées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <html:form action="/adresse"> <nested:nest property="personne"> Prénom <nested:text property="prenom"></nested:text> Nom <nested:text property="nom"/><br> Email <nested:text property="email"/><br> <html:submit/> </nested:nest> </html:form>
Mon fichier struts-config :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <nested:root name="identite"> <html:form action="/resultat"> Numéro <nested:text property="personne.adresse.numero"/> Voie <nested:text property="personne.adresse.voie"/> Nom <nested:text property="personne.adresse.nom"/> <html:submit/> </html:form> </nested:root>
Et voici mon message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <form-beans> <form-bean name="identite" type="forms.Identite"/> </form-beans> <action-mappings> <action name="identite" type="org.apache.struts.actions.ForwardAction" path="/adresse" parameter="/adresse.jsp"/> <action name="identite" type="org.apache.struts.actions.ForwardAction" path="/resultat" parameter="/resultat.jsp"/> </action-mappings>
L'erreur survient au moment de valider le premier formulaire (formulaire.jsp).
Ce que je ne comprends pas, c'est ce le message d'erreur me dit qu'il n'existe pas de propriété "numero" pour le bean "personne.adresse", alors que cette propriété est correctement déclarée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 javax.servlet.ServletException: org.apache.jasper.JasperException: An exception occurred processing JSP page /adresse.jsp at line 15 12: <body> 13: <nested:root name="identite"> 14: <html:form action="/resultat"> 15: Numéro <nested:text property="personne.adresse.numero"/> 16: Voie <nested:text property="personne.adresse.voie"/> 17: Nom <nested:text property="personne.adresse.nom"/> 18: </html:form> javax.servlet.ServletException: javax.servlet.jsp.JspException: Invalid argument looking up property: "personne.adresse.numero" of bean: "identite" [...]
Merci de bien vouloir éclairer ma chandelle
Partager