2017-03-15 16 views
0

나는 다음과 같은 요소를 가지고 : 나는 목록 requirementsDocuments의 크기가 더 큰 0보다 데이터 실제로 의해 생성 된 특정 클래스인지 여부를 확인할 수있는 방법을 내 검사기 내부지정 유효성 검사 : selectOneMenu

<p:selectOneListbox id="requirementsUrl"         
        value="#{data.selectedURL}"> 
        <f:selectItems value="#{data.requirementsDocuments}" />          
        <f:validator validatorId="conf.ListValidator" /> 
</p:selectOneListbox> 

을 프레임 워크는 내가 사용하고 있으며 일반 Java 코드를 통해 직접 액세스 할 수 없습니다.

+0

왜 생성자에서 그것을 확인 (또는 게터에서) –

답변

0

유효성 검사기에서 FacesContext를 통해 EL 표현식 "# {data.requirementsDocuments}"의 값에 액세스 할 수 있습니다.

예 :

public void validate(FacesContext context, UIComponent component, 
      Object value) throws ValidatorException { 
     List requireDocuments = context.getApplication() 
      .evaluateExpressionGet(context, "#{data.requirementsDocuments}", List.class); 
     if(requireDocuments.size() == 0) { 
      throw new ValidatorException("List is empty!"); 
     } 
    }