我有以下模型类(简化)
class A{
private String name;
private List<B> items;
}
class B{
private long from;
private long to;
}
此外,我有Form获取由CompoundPropertyModel绑定的类A.如果我想显示绑定到name字段的TextField,我只需添加
new TextField("name");
就是这样。但是,如何正确绑定此项目列表?对于B类,我也有覆盖convertInput的FormComponent,因为我想在将值分配给from,to之前进行一些计算。 我试过(Property)ListView,但两者似乎都没有用(或者我用错了方法)。
谢谢你,亲切的问候,
微米。
答案 0 :(得分:6)
使用
Form form = new Form("form", new CompoundPropertyModel(modelObject));
form.add(new ListView("items"));
相当于
Form form = new Form("form", new CompoundPropertyModel(modelObject));
form.add(new ListView("items", new PropertyModel(modelObject, "items"));
ListView的模型将由CPM模型对象的items
属性支持。
请务必覆盖populateItem
,其中ListItem
的模型对象将是List
中的每个元素。
您可以在支持模型对象的items
属性上执行计算。如果您不想修改模型对象的属性,则不应使用CPM绑定items
属性,并实现提供修改后的Model
的{{1}}(可能是如果您希望在每次页面渲染时更新这些计算,就像在ajax刷新中一样。
此Wicket维基页面显示了List
:ListView and other repeaters