Привязать объекты в коллекции Set

У меня есть форма, которая заполняет некоторые объекты коллекции. У меня была коллекция, реализованная с помощью списка (все работало хорошо), но теперь я хочу использовать набор. У меня есть редактор свойств, зарегистрированный для создания объектов. Проблема в том, что я не знаю, какой синтаксис я должен использовать для заполнения объектов набора.

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

Я пробовал использовать синтаксис в тегах формы, например, синтаксис списка:

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

и как синтаксис для карты:

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

но оба приходят к ошибке, потому что «Свойство, указанное в пути индексированного свойства« otherObjects [0 ] », не является ни массивом, ни списком, ни картой»

Я также пробовал с

name="otherObjects"

но это не заполняет объекты. Может ли кто-нибудь сказать мне, как связать данные с объектами в наборе.

Спасибо


person Javi    schedule 13.12.2010    source источник


Ответы (2)


Согласно документации по привязке данных, вы можете использовать скобки только для привязки к вложенным объектам в «естественно упорядоченной коллекции». Набор не подходит.

person Jacob Mattison    schedule 13.12.2010

Разве вы не можете использовать старый синтаксис в тегах формы и добавить геттер, который будет возвращать набор объектов?

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

  public Set<OtherObject> getOtherObject()
  {
    return new HashSet<OtherObject>(otherObjectsList);
  }
}
person Boris Pavlović    schedule 13.12.2010
comment
Я думаю, что это решение не очень чистое, это просто способ избежать привязки к набору. - person Javi; 13.12.2010