如何在 Wicket 中将两个 List PropertyModels 合并为一个模型
How to combine two List PropertyModels to one model in Wicket
假设我有一个名为 E
的实体。
它的结构有两个字段:
E {
List<A> a1;
List<A> a2;
}
目前我有两个 PropertyModels
这样的:
PropertyModel<A> a1Model = new PropertyModel(e, "a1");
PropertyModel<A> a2Model = new PropertyModel(e, "a2");
我有一个repeater,我只想给它一个listModel。
我目前的实现方式是这样的:
List<A> aItems = new ArrayList<A>();
aItems.addAll(a1Model.getObject());
aItems.addAll(a2Model.getObject());
PropertyModel<A> aModel = new PropertyModel<A>(this, "aItems");
我现在想念与数据库的连接,因为 e
实际上是在 LoadableDetachableModel
中给出的。当 e
在该模型内部更改时,该值不会自动流动,直到该字段。
我也不确定它现在是否成功,但以某种方式干扰模型的游戏只会让我闻起来难闻。现在我在字段中只列出了a1,现在我正在添加a2。
如何实现一个model for field(其实是另外一个panel)?
您可以创建一个模型,将这两个模型组合到 List<E>
:
IModel<List<E>> listModel = new LoadableDetachableModel<List<E>>() {
public List<E> load() {
return Arrays.asList(a1Model.getObject(), a2Model.getObject());
}
}
假设我有一个名为 E
的实体。
它的结构有两个字段:
E {
List<A> a1;
List<A> a2;
}
目前我有两个 PropertyModels
这样的:
PropertyModel<A> a1Model = new PropertyModel(e, "a1");
PropertyModel<A> a2Model = new PropertyModel(e, "a2");
我有一个repeater,我只想给它一个listModel。
我目前的实现方式是这样的:
List<A> aItems = new ArrayList<A>();
aItems.addAll(a1Model.getObject());
aItems.addAll(a2Model.getObject());
PropertyModel<A> aModel = new PropertyModel<A>(this, "aItems");
我现在想念与数据库的连接,因为 e
实际上是在 LoadableDetachableModel
中给出的。当 e
在该模型内部更改时,该值不会自动流动,直到该字段。
我也不确定它现在是否成功,但以某种方式干扰模型的游戏只会让我闻起来难闻。现在我在字段中只列出了a1,现在我正在添加a2。
如何实现一个model for field(其实是另外一个panel)?
您可以创建一个模型,将这两个模型组合到 List<E>
:
IModel<List<E>> listModel = new LoadableDetachableModel<List<E>>() {
public List<E> load() {
return Arrays.asList(a1Model.getObject(), a2Model.getObject());
}
}