Wicket LoadableDetachableModel:从内部列表加载

时间:2013-04-10 06:15:25

标签: java wicket

我正在使用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

1 个答案:

答案 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);
    }