nested et bean objects imbriqué
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 :
Code:
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
.
.
.
} |
puis mon objet contenant l'objet Adresse précédent :
Code:
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 :
Code:
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
}
} |
et pour terminer ma jsp (je vous passe les taglibs etc):
Code:
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 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.
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:
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 ;)