1

我正在使用 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();
    }

构造函数获取对象和项目在列表中的索引,因此当我执行 getObject() 时,它会从列表中加载对象。但是当我尝试获取对象时,我收到了 NullPointer。有什么我想念的吗?

当我调试时,我看到所有正确的项目都在列表中,但它们后来被分离了。

亲切的问候,

梅林

4

1 回答 1

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);
    }
于 2013-04-10T06:45:38.540 回答