绑定Set集合中的对象

时间:2010-12-13 13:23:20

标签: java spring data-binding jsp spring-mvc

我有一个填充Collection的某些对象的表单。我用List实现了集合(一切都运行良好),但现在我想使用Set。我有一个注册的属性编辑器来创建对象。问题是我不知道填充Set的对象必须使用什么语法。

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

我已尝试使用表单标记中的语法,例如语法列表:

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

和地图的语法一样:

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

但两者都出错了,因为“索引属性路径'otherObjects [0]'中引用的属性既不是数组也不是List也不是Map”

我也试过

name="otherObjects"

但这不会填充对象。 任何人都可以告诉我如何将数据绑定到Set中的对象。

由于

2 个答案:

答案 0 :(得分:13)

根据documentation on data binding,您只能使用括号表示法绑定到“自然排序的集合”中的嵌套对象。一套不合格。

答案 1 :(得分:0)

你不能在表单标签中使用旧语法并添加一个将返回一组对象的getter吗?

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

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