Java 检索模型中列表元素的嵌套模型
我被wicket模型和列表的问题所困扰。 假设我有一个这样的豆子: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”) 但是如何
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),并确保在提交时更新列表中的对象。