2013-04-11 47 views
0

我困住了检票模型和列表的问题。 比方说,我有一颗豆这样的:检索模型中的列表元素的嵌套模型

public class A{ 
    private B title; 
    private ArrayList<C> childs; 
    ...get/set...; 
} 

我从中创建new Model<A>(a)一个模型,我想检索嵌套模型的是属性。对于B,这很简单:new PropertyModel(a,"title")

但是,我如何检索每个孩子C的嵌套模型? (型号IModel<C>

谢谢。

+0

有与PropertyModels没有直接的方法。您需要创建一个包装,根据您的列表生成一个IModel s列表。 – Nicktar 2013-04-11 11:46:55

+0

这就是我的想法,但我不是一个检票专家,我不知道如何创建它并保持模型嵌套。 – wishper 2013-04-11 11:54:28

+0

您能否解释一下,“嵌套”的意思是什么,您想用嵌套模型进行存档以及您想要使用它的位置?针对不同的用例有不同的解决方案,我不知道哪个适合您的需求。 – Nicktar 2013-04-12 07:45:32

回答

0

您需要一个将大部分工作委托给实际Bean的包装器,但是它会将IModels中的返回值包装起来。

这可能与此类似:

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

      ... 

     }; 
    } 
}