2011-03-04 2 views
11

날짜를 허용하는 inputText 필드가있는 양식 페이지가 있습니다. 텍스트 상자의 문자열을 Date 객체로 변환하는 변환기가 있습니다 (예 : "2011-03-01"to java.util.Date ("2011-03-01" "))JSF 변환기의 오류 메시지에있는 사용자 정의 변수

문자열이 .하지 "123"다음 유효성 검사 오류 메시지가 표시가 나타납니다 같은 날짜, "값 (123) 날짜를해야합니다"현재

, 내 .properties 파일에서, 나는 참조 :

javax의를 .faces.converter.DateTimeConverter.DATE = 값 ({0})은 (는) 날짜 여야합니다.

정확히 어떤 필드가 날짜 여야 하는지를 지정하여이 오류 메시지를보다 명확하게 만들어야합니다. (양식에 둘 이상의 날짜 텍스트 필드가있을 수 있으므로).

내가 좋아하는 뭔가를 변경하려면 :

javax.faces.converter.DateTimeConverter.DATE = 필드가 "{0}"값 ({1})를 일해야합니다

그러나 JSF가 {0} 및 {1}을 자동으로 채우는 방법을 잘 모르겠습니다. JSF 변환기 오류 메시지에서 내 자신의 변수를 어떻게 지정합니까?

참고 : (변환기와 혼동하지 말고) 자체 유효성 검사기를 만들려고했지만 JSF 프레임 워크가 유효성 검사 전 유효 기간 전에 변환을 수행하는 것으로 보입니다.

<h:inputText value="#{user.dateOfBirth}" converterMessage="Format must be: yyyy-MM-dd"> 
    <f:convertDateTime pattern="yyyy-MM-dd" /> 
</h:inputText> 

그렇지 않으면, 기본적으로 JSF는 <h:message>에서 _detail 메시지를 보여줍니다 : JSF 1.2에서 시작

답변

17

는 등, 전체 메시지를 대체 할 converterMessage 속성을 사용합니다. <h:message showDetail="false" showSummary="true">을 사용할 때만 질문과 비슷한 질문이 표시됩니다. 난 당신이 사용중인 JSF 버전 잘 모르겠지만, 내 JSF에 f:convertDateTimedefault detail message은 다음과 같다 2.0.3 :

javax.faces.converter.DateTimeConverter.DATE_detail = {2}: ''{0}'' could not be understood as a date. Example: {1} 

{2} 클라이언트 ID 또는의 label 속성으로 대체됩니다 입력 필드가있는 경우

<h:inputText value="#{user.dateOfBirth}" label="Date of birth"> 
    <f:convertDateTime pattern="yyyy-MM-dd" /> 
</h:inputText> 

모두 DATEDATE_detail 메시지가 DATE_detail 메시지를 정의해야합니다 사용한다 : 또한

javax.faces.converter.DateTimeConverter.DATE=Date format must be: dd/mm/yyyy 
javax.faces.converter.DateTimeConverter.DATE_detail=Date format must be: dd/mm/yyyy 

참조 :