2010-12-13 40 views
7

J'ai un formulaire qui remplit certains objets d'une collection. J'ai eu la collection implémentée avec une liste (tout a bien fonctionné), mais maintenant je veux utiliser un ensemble. J'ai un éditeur de propriété enregistré pour créer les objets. Le problème est que je ne sais pas quelle est la syntaxe que je dois utiliser pour peupler les objets de l'ensemble.Lier des objets dans une collection Set

public class MyObject(){ 
    Set<OtherObject> otherObjects = new HashSet(); 
} 

J'ai essayé avec la syntaxe dans les balises de forme, comme la syntaxe d'une liste:

name="otherObjects['${status.index}']" 

et comme la syntaxe d'une carte:

name="otherObjects['${id}']" 

mais aussi venir une erreur car "Propriété référencée dans le chemin de propriété indexée 'otherObjects [0]' n'est ni un tableau ni une liste ni une carte"

J'ai également essayé avec

name="otherObjects" 

mais cela ne remplit pas les objets. Quelqu'un peut-il me dire comment lier les données aux objets d'un ensemble.

Merci

Répondre

11

Selon le documentation on data binding, vous pouvez seul utilisateur la notation de support pour se lier à des objets imbriqués dans une « collection naturellement ordonnée ». Un ensemble n'est pas admissible.

0

ne pouvez-vous utiliser l'ancienne syntaxe dans les balises de forme et ajouter un getter qui retourne un ensemble d'objets?

public class MyObject(){ 
    List<OtherObject> otherObjectsList = new ArrayList<OtherObjects>(); 

    public Set<OtherObject> getOtherObject() 
    { 
    return new HashSet<OtherObject>(otherObjectsList); 
    } 
} 
+1

Je pense que cette solution n'est pas très propre, c'est juste un moyen d'éviter de se lier à un Set. – Javi