2012-10-23 2 views
1
내가 (솔기의 XHTML 파일) 그것은 텍스트의 길이 513과 1로 값을 작동

JSF 1.2/심 2.2 - 검증이 생략되는 경우 입력이 빈

<f:validateLength minimum="2" maximum="512"/> 

JSF에 validateLength를 호출하는 것을 시도하고있다

(즉, 그것은 경고를 보여 주지만 0은 아님)

빈 텍스트 필드에 a4j 지원을 사용할 수 있도록 입력 텍스트 필드가 required = false로 설정되어 있습니다. 입력)

내가보기에 문제는 도우미 클래스 b에 유효성 검사기 메서드가 있다는 것입니다. ut은 입력 길이가 0 일 때 무시됩니다 (즉, 아무 것도 넣지 않고 비어 있지 않은 값에 대해서만 작동합니다).

또한 여기에 NullableStringConverter가 있지만 변환기가 빈 문자열의 null 값을 설정하자마자 유효성 검사기가 건너 뛰게됩니다. 여기에 InputText]를

<h:inputText id="linkNameInput" 
    value="#{someHelper.name}" 
    validator="#{someHelper.validateMethod}" 
    required="false"> 
     <f:validateLength minimum="2" maximum="512"/> 
     <f:converter converterId="NullableStringConverter" /> 
</h:inputText> 

에서의 전체 조각이 나는 것 단지 검증에 빈 문자열을 검증 할 수있다.

+0

http://stackoverflow.com/a/8327848/617373? – Daniel

답변

1

나는 유효성 검사기에서 빈 문자열의 유효성 검사 기능을 원합니다.

JSF 1.x에서는 불가능합니다. 이는 JSF 2.0 이후에만 가능합니다 (JSR303 Bean 유효성 검사 지원을 위해).

사용자 정의 유효성 검사기에서 빈 문자열의 유효성을 검사하려는 이유가 확실하지 않습니다. 일반적으로 여기에 required="true" 속성을 사용합니다. 유일한 목표가 필요한 메시지를 변경하는 것이라면 requiredMessage 속성을 사용하십시오.

<h:inputText ... required="true" requiredMessage="Please enter name" /> 
0

이미 언급했듯이 JSF 1.2 구성 요소에서 빈 입력 문자열의 유효성을 검사하는 것은 지원되지 않습니다. 그러나 양식 제출시이 빈/빈 모델 값을 백업 bean에서 점검하고 해당 입력 필드에 맵핑 된 FacesMessage를 추가 할 수 있습니다. 이렇게하면 서버 측 구성 요소 별 오류 메시지 표시 (<h:message for="componentId" />)와의 통합이 가능합니다.

FacesContext.getCurrentInstance().addMessage("componentId", 
              facesMessageForComponent);