面板之间的wicket持久对象

时间:2011-06-30 08:40:11

标签: list save wicket persistent

在没有保存到会话的wicket中,我如何拥有持久对象,例如可以在一个面板中设置并从另一个面板访问的列表。我做了很多googleing,我不完全确定这将如何工作。任何帮助将非常感激!谢谢。

1 个答案:

答案 0 :(得分:2)

与上述评论相关,我会尝试解释我的想法。

免责声明:自从我与Wicket合作已经一年多了,因此以下内容应该被视为一个整体概念验证。我不能保证它会编译(实际上,我几乎可以肯定它不会。)

public class MyPage extends ... {
    ...
    MyPageModel pm = new MyPageModel();
    add(new MyPanel1(pm));
    add(new MyPanel2(pm));
    ...
}

public class MyPageModel implements Serializable {
    private IModel<List<MyDataObject>> dataObjects;

    public MyPageModel() {
        this.dataObjects = // Load list from somewhere
    }

    public IModel<List<MyDataObject>> getDataObjects() {
        return this.dataObjects;
    }
}

public class MyPanel1 extends ... {
    private MyPageModel pageModel;

    public MyPanel1(MyPageModel pageModel) {
        this.pageModel = pageModel;
        ...
        add(new ListSomethingComponent<MyDataObject>(pageModel.getDataObjects)); // Some list renderer component which takes a IModel<List<MyDataObject>> as data
    }
}

public class MyPanel2 extends ... {
    private MyPageModel pageModel;

    public MyPanel2(MyPageModel pageModel) {
        // Same as MyPanel1...
    }
}