我正在使用LoadableDetachableModel在Wicket中保存一些搜索结果。对于每个结果,制作这样的模型。这是代码:
private List<IModel<ResultItem<?>>> results;
ResultItemModel(ResultItem<?> object, int index) {
super(object);
this.index = index;
}
@Override
protected ResultItem<?> load() {
return results.get(index).getObject();
}
构造函数获取对象和List中项目所在的索引,因此当我执行getObject()时,它会从列表中加载对象。但是当我尝试获取对象时,我收到了NullPointer。有什么我想念的吗?
当我调试时,我看到所有正确的项目都在列表中,但后来它们被分离了。
亲切的问候,
Merlijn
答案 0 :(得分:0)
好吧,我修好了。我用这样的PropertyModel包围了List:
resultListModel = new PropertyModel<List<IModel<ResultItem<?>>>>(this,"results");
在LDM中,我将代码更改为以下内容:
@Override
protected ResultItem<?> load() {
return resultListModel.getObject().get(index).getObject();
}
@Override
public void detach() {
resultListModel.setObject(results);
}