java - 如何在 Wicket 中将两个 List PropertyModels 合并为一个模型

标签 java wicket

假设我有一个名为 E 的实体。

它的结构有两个字段:

E {
   List<A> a1;
   List<A> a2;
}

目前我有两个像这样的 PropertyModels:

PropertyModel<A> a1Model = new PropertyModel(e, "a1");
PropertyModel<A> a2Model = new PropertyModel(e, "a2");

我有一个中继器,我只想给它一个 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());
    }

}

关于java - 如何在 Wicket 中将两个 List PropertyModels 合并为一个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34811316/

相关文章:

hibernate - 在长时间运行的对话中在 Wicket 和 Hibernate 之间安全地传递信息

java - 无法将值放入 M​​DC

java - 通过 SQLiteOpenHelper 从 Sqlite 插入和读取数据

java - Wicket - 使用复选框禁用/启用文本字段

javascript - 如何捕获 wicket jquery ui spinner 的 onclick

java - Wicket - 运行时类重新加载

java - 如何允许无限对象实例化?

java - 如何避免 Java 中的回调 hell ?

java - JDBI中assertThat的用途是什么?

java - onCreate() 期间静态 TextView 会发生什么