如何在 Apache Wicket 中编辑 LoadableDetachableModel
How to edit LoadableDetachableModel in Apache Wicket
我正在使用 loadableDetachableModel 来显示一些组件,它通过在 load 方法中调用 webservice 来第一次获取我想要的数据。但是用户对该模型执行一些操作,例如插入或删除。所以我不想调用该网络服务,除非是第一次。
所以代码如下:
myLoadableDetachablModel = new LoadableDetachableModel<List<MyType>>() {
private static final long serialVersionUID = 1L;
@Override
protected List<MyType> load() {
// I don't want to touch DB except very first time
List<MyType> neededObjects = myService.getMyMethod();
return neededObjects;
}};
你对我有什么建议吗?谢谢
许多项目对此用例使用自定义实现:
public abstract class InitializingModel<T> extends AbstractReadOnlyModel<T> {
private boolean initialized;
private T t;
public T getObject() {
if (initialized == false) {
t = init();
initialized = true;
}
return t;
}
protected abstract T init();
}
请注意,这会在页面和会话序列化期间将您的模型对象 T 保留在页面树中。
我正在使用 loadableDetachableModel 来显示一些组件,它通过在 load 方法中调用 webservice 来第一次获取我想要的数据。但是用户对该模型执行一些操作,例如插入或删除。所以我不想调用该网络服务,除非是第一次。
所以代码如下:
myLoadableDetachablModel = new LoadableDetachableModel<List<MyType>>() {
private static final long serialVersionUID = 1L;
@Override
protected List<MyType> load() {
// I don't want to touch DB except very first time
List<MyType> neededObjects = myService.getMyMethod();
return neededObjects;
}};
你对我有什么建议吗?谢谢
许多项目对此用例使用自定义实现:
public abstract class InitializingModel<T> extends AbstractReadOnlyModel<T> {
private boolean initialized;
private T t;
public T getObject() {
if (initialized == false) {
t = init();
initialized = true;
}
return t;
}
protected abstract T init();
}
请注意,这会在页面和会话序列化期间将您的模型对象 T 保留在页面树中。