Wicket Model对象包含一个List - 如何正确绑定它

Soc*_*ash 1 wicket model

我有以下模型类(简化)

class A{
  private String name;
  private List<B> items;
}

class B{
  private long from;
  private long to;
}
Run Code Online (Sandbox Code Playgroud)

此外,我有Form获取由CompoundPropertyModel绑定的类A. 如果我想显示绑定到name字段的TextField,我只需添加

new TextField("name"); 
Run Code Online (Sandbox Code Playgroud)

就这样.但是,如何正确绑定此项目列表?对于类BI,还有覆盖convertInput的FormComponent,因为我想在将值分配给from之前进行一些计算.我尝试过(Property)ListView,但两者似乎都不起作用(或者我以错误的方式使用它们).

谢谢你,亲切的问候,

M.

Xav*_*ica 6

运用

Form form = new Form("form", new CompoundPropertyModel(modelObject));
form.add(new ListView("items")); 
Run Code Online (Sandbox Code Playgroud)

相当于

Form form = new Form("form", new CompoundPropertyModel(modelObject));
form.add(new ListView("items", new PropertyModel(modelObject, "items"));
Run Code Online (Sandbox Code Playgroud)

ListView的模型将由itemsCPM的模型对象的属性支持.记得覆盖populateItem,其中ListItem的模型对象将是每个元素中的一个List.

您可以items对支持模型对象的属性执行计算.如果您不想修改模型对象的属性,则不应使用CPM绑定items属性,并实现Model提供修改的属性List(如果您希望在每次页面呈现时更新这些计算,则可能很有用)在ajax刷新.

这个Wicket维基页面显示了ListView:ListView和其他转发器的用法