Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检索模型中列表元素的嵌套模型_Java_Wicket 1.5 - Fatal编程技术网

Java 检索模型中列表元素的嵌套模型

Java 检索模型中列表元素的嵌套模型,java,wicket-1.5,Java,Wicket 1.5,我被wicket模型和列表的问题所困扰。 假设我有一个这样的豆子: public class A{ private B title; private ArrayList<C> childs; ...get/set...; } 公共A类{ 私人B头衔; 私人ArrayList childs; …得到/设置。。。; } 我从它创建了一个模型新模型(a),我想检索它属性的嵌套模型。对于B,它很简单:newpropertyModel(a,“title”) 但是如何

我被wicket模型和列表的问题所困扰。 假设我有一个这样的豆子:

public class A{
    private B title;
    private ArrayList<C> childs;
    ...get/set...;
}
公共A类{
私人B头衔;
私人ArrayList childs;
…得到/设置。。。;
}
我从它创建了一个模型
新模型(a)
,我想检索它属性的嵌套模型。对于
B
,它很简单:
newpropertyModel(a,“title”)

但是如何为每个子C检索嵌套模型呢?(IModel类型的模型)


谢谢。

您需要一个包装器,它将大部分工作委托给实际的bean,但在imodel中包装返回值

这可能与此类似:

public class ModelWrapper implements IModel<A> {

    private A data;

    public ModelWrapper(A data) {
        this.data = data;
    }

    public IModel<B> getTitle() {
        return new Model(data.getTitle());
    }

    public List<IModel<C>> getChilds() {
        return new List<IModel<C>>() {

            @Override
            public int size() {
                return data.getChilds().size();
            }


            @Override
            public IModel<C> get(int index) {
                return new IModel<C>(data.getChilds().get(index));
            }

            ...

        };
    }
}
public类ModelWrapper实现IModel{
私有数据;
公共模型包装器(A数据){
这个数据=数据;
}
公共IModel getTitle(){
返回新模型(data.getTitle());
}
公共列表getChilds(){
返回新列表(){
@凌驾
公共整数大小(){
返回数据.getChilds().size();
}
@凌驾
公共IModel get(int索引){
返回新的IModel(data.getChilds().get(index));
}
...
};
}
}

使用PropertyModels没有直接的方法。你需要创建一个包装器,根据你的列表生成一个iModel列表。这是我的想法,但我不是wicket专家,我不知道如何创建它并保持模型嵌套。你能解释一下,你所说的“嵌套”到底是什么意思,你想用嵌套模型存档什么,你想在哪里使用它吗?不同的用例有不同的解决方案,我不知道哪一个适合您的需要。我的目标是在表单中使用这些模型(使用CompoundPropertyModel),并确保在提交时更新列表中的对象。