2013-04-11 3 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 목록을 생성하는 래퍼를 만들어야합니다. – Nicktar

+0

그것이 제가 생각한 것입니다. 그러나 개찰구 전문가는 아니며 그것을 만드는 방법과 모델을 중첩시키는 방법을 모르겠습니다. – wishper

+0

"중첩 된"이라는 것이 정확히 무엇을 의미하는지, 중첩 된 모델로 보관하려는 대상 및 사용하려는 위치를 설명해 주시겠습니까? 다양한 유스 케이스에 대한 다양한 솔루션이 있으며 사용자의 요구에 적합한 솔루션을 찾을 수 없습니다. – Nicktar

답변

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

      ... 

     }; 
    } 
} 
관련 문제