2012-04-06 3 views
0

내 JSF 중 하나가 메타 데이터 및 f : ViewParm 태그를 통해 매개 변수를받습니다. 사전 렌더링보기에서 데이터베이스에서 쿼리하고 데이터 테이블 뷰에 대한 내 목록을 작성하기 위해 백킹 빈에서 이러한 매개 변수를 사용하고 있습니다. 그것은 잘 작동하지만 이제 lazyDataModel (나는 Primefaces 3.2 사용)로 전환해야합니다. 예제를 따르는 경우에는 LazyDataModel을 구현해야합니다.이 LazyDataModel은 백업 빈의 생성자에서 수행됩니다. 할 수는 있지만 매개 변수에 액세스 할 수는 없습니다. 내 질문은 매개 변수를 잡고 LazyDataModel (LazyCarDataModel)을 구현하는 클래스에 전달하는 방법입니다. LazyCarDataModel의 재정의 된로드 메서드에서 이러한 매개 변수를 사용하고 싶습니다. 내 생성자에서 들어오는 매개 변수에 액세스 할 수있는 방법은 없습니다. 이 상황을 처리하기위한 모든 제안/트릭이 인정 될 것입니다.LazyDataModel을 구현하는 클래스에 매개 변수 전달

베드로는

답변

1

당신은보기 매개 변수를 설정 한 후 백업 빈의 메소드를 호출 할 <f:event type="preRenderView">을 사용할 수 있습니다.

예.

private Car car; 
private transient DataModel<Something> model; 

public void init() { 
    model = buildSomehowBasedOn(car); 
} 

<f:metadata> 
    <f:viewParam name="carId" value="#{bean.car}" converter="#{carConverter}" /> 
    <f:event type="preRenderView" listener="#{bean.init}" /> 
</f:metadata> 

당신은 양자 택일 또한 데이터 테이블의 게터에 게으른 로딩을 소개 할 수있다.

public DataModel<Something> getModel() { 
    if (model == null) { 
     model = buildSomehowBasedOn(car); 
    } 

    return model; 
} 
+1

멋진 주말 보내 주셔서 감사합니다. 귀하의 도움은 많은 사람들에게 항상 높이 평가됩니다. – Peter