Bonjour!
Je souhaite via nested completer un formulaire contenant un objet complexe (entendez par là un bean contenant outre des types simple (String, int etc) un autre bean attaché).
Concrètement, voici mes objets beans :
l'objet adresse :
puis mon objet contenant l'objet Adresse précédent :
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
22
23
24
25
26
27
28
29
30 package ******.service; /** * * @author ********* */ public class AdresseVO implements Serializable { public AdresseVO() { } public AdresseVO(String rue, String num, String boite, String codePostal, String localite){ this.rue = rue; this.num = num; this.boite = boite; this.codePostal = codePostal; this.localite = localite; } private String rue; private String num; private String boite; private String codePostal; private String localite; tous mes setters et getters . . . }
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 package *******.service; import java.io.Serializable; /** * * @author ******* */ public class PouvoirOrganisateurVO implements Serializable { public PouvoirOrganisateurVO() { } public PouvoirOrganisateurVO(String denomination, String poWebSite, String province, String commentaires){ this.denomination = denomination; this.poWebSite = poWebSite; this.province = province; this.commentaires = commentaires; } private String denomination; //private POFOrme formeJuridique; private String poWebSite; private AdresseVO adresse; //private String poPere; private String province; private String commentaires; public AdresseVO getAdresse() { return adresse; } public void setAdresse(AdresseVO adresse) { this.adresse = adresse; } les autres getters et setters . . . }
maintenant mon actionForm :
et pour terminer ma jsp (je vous passe les taglibs etc):
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 package ********.forms; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; import thalesis.service.PouvoirOrganisateurVO; /** * * @author ******** * @version */ public class PouvoirOrganisateurActionForm extends org.apache.struts.action.ActionForm { private PouvoirOrganisateurVO po = new PouvoirOrganisateurVO(); public PouvoirOrganisateurVO getPo() { return po; } public void setPo(PouvoirOrganisateurVO po) { this.po = po; } /** * */ public PouvoirOrganisateurActionForm() { super(); // TODO Auto-generated constructor stub } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { //le code de validation } }
Le nested fonctionne parfaitement quand je ne met pas l'objet adresse dans mon second bean et que donc je n'y fait pas référence dans ma jsp.
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 <html:form action="PoTest.do"> <nested:hidden property="dispatch" value="load"/> <nested:nest property="po"> Dénomination : <nested:text property="denomination"/><br> <nested:nest property="adresse"> <nested:text property="rue"/><br> <nested:text property="num"/><br> </nested:nest> Site web : <nested:text property="poWebSite"/><br> Province : <nested:text property="province"/><br> Commentaires : <nested:text property="commentaires"/><br> </nested:nest> . . . </html:form>
Le soucis survient dès que j'ajoute l'instance de AdresseVO, j'obtiens le message d'erreur suivant a la compilation de la jsp par le serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 javax.servlet.jsp.JspException: Invalid argument looking up property: "po.adresse.rue" of bean: "PouvoirOrganisateurActionForm" at org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:960) at org.apache.struts.taglib.html.BaseFieldTag.prepareValue(BaseFieldTag.java:121) . . .
yaurait-il un soucis dans mon code? une astuce? puisqu'apparement il fait bien l'imbrication de mes beans vu qu'il cherche après la propriété po.adresse.rue....
merci pour vos lumières![]()
Partager