2010-12-13 4 views
7

コレクションのオブジェクトを塗りつぶすフォームがあります。私はListを使ってコレクションを実装しましたが(すべてがうまくいきました)、今はSetを使いたいと思います。私はオブジェクトを作成するために登録されたプロパティエディタを持っています。問題は、Setのオブジェクトを設定するために使用する必要がある構文がわからないことです。コレクションのオブジェクトをバインドする

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

とマップのような構文:

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

が、両方に来て、私は構文リストのように、フォームタグの構文を試してみました

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

"インデックス付きプロパティパス 'otherObjects [0]'で参照されているプロパティが配列でもリストでもマップでもないため、エラーが発生しました。

私も試しました

name="otherObjects" 

これはオブジェクトを埋めるものではありません。 誰かがSet内のオブジェクトにデータをバインドする方法を教えてもらえますか?

おかげ

答えて

11

documentation on data bindingによると、することができますブラケット表記は「自然順序付きコレクション」にネストされたオブジェクトにバインドするための唯一のユーザー。セットは適格ではありません。

0

あなたはフォームタグで古い構文を使用して、オブジェクトのセットを返しますゲッターを追加することができませんか?

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

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

私はこのソリューションは非常にクリーンではないと思う、それはセットにバインドすることを回避する単なる方法です。 – Javi

関連する問題