2011-07-20 1 views
2

J'ai un objet avec une liste d'objets A avec une liste d'objets B.avec des étiquettes de formulaire Spring 2, comment lier la liste dans une liste

Modèle:

public class ObjectA implements Serializable { 

    private List<ObjectB> objectBs; 
} 

public class ObjectB implements Serializable { 

    private String name; 
} 

avec accesseurs

DTO: utilisation dans mon contrôleur frontal avec Spring MVC 2

public class FrontObject implements Serializable { 

    private List<ObjectA> objectAs; 
} 

avec des accesseurs

Dans mon JSP (j'utiliser un tag foreach pour ajouter des choses Somes, je sais que la forme: tag cases à cocher):

<c:forEach items="${objectAsList}" var="item"> 
    <!-- it works --> 
    <form:checkbox path="objectAs" value="${item}"/> 

    <c:forEach items="${item.objectBs}" var="itemB"> 
     <!-- whats the path? --> 
     <form:checkbox path="????" value="${itemB}" /> 
    </c:forEach> 
</c:forEach> 

Quelle est la syntaxe le chemin (de la case à cocher étiquette de formulaire) pour lier une liste d'objetB dans une liste d'objetA

Peut-être quelque chose comme

<form:checkbox path="objectAs.objectBs" value="${itemB}" /> 

Retour org.springframework.beans.NotReadablePropertyException: propriété non valide

Répondre

0

Normalement, le chemin est le nom de la valeur contenue par votre objet. Dans votre cas, il est "nom"

+0

Non! C'est une liste dans une liste. Pas une liste! – BasicCoder

+0

Essayez-vous avec "itemB.name"? – lookfire

0

Je pense qu'il pourrait être

<form:checkbox path="objectAs.objectBs.name" value="${itemB.name}" /> 

ou peut-être:

<c:forEach items="${item.objectBs}" var="itemB" varStatus="i"> 
     <form:checkbox path="objectAs.objectBs[i.index].name" value="${itemB.name}" /> 
    </c:forEach> 
Questions connexes