2010-12-13 15 views
7

Koleksiyonun bazı nesnelerini dolduran bir formum var. Bir Listeyle (her şey iyi çalıştı) toplanmış koleksiyonum vardı, ama şimdi bir Set kullanmak istiyorum. Nesneleri oluşturmak için kayıtlı bir emlak editörüm var. Sorun, Set'in nesnelerini doldurmak için kullanmam gereken sözdiziminin ne olduğunu bilmemesi.Set koleksiyonundaki nesneleri bağlama

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

ben sözdizimi gibi form etiketleri sözdizimi içeren bir liste denedi:

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

ama hem gelmek:

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

ve bir harita için sözdizimi gibi "Dizin özellik yolunda başvurulan özellik" otherObjects [0] 'öğesinin ne bir dizi, ne de Liste veya Harita "

olduğu için bir hata

ile de çalıştım ancak bu, nesneleri doldurmuyor. Verileri bir Küme içindeki nesnelere nasıl bağlayacağımı söyleyen var mı?

Teşekkür

cevap

11

documentation on data binding göre yapabilirsiniz braket notasyonu bir "doğal olarak sıralanabilir koleksiyonunda" iç içe geçmiş nesneleri bağlamak için sadece kullanıcı. Bir set uygun değildir.

0

form etiketleri eski sözdizimini kullanın ve nesneleri kümesi döndürür bir alıcı eklenemez?

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

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

Bu çözümün çok temiz olmadığını düşünüyorum, bir Set'e bağlanmanın önlenmesi için bir yol. – Javi