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