2012-01-06 3 views
0

필드에 텍스트를 입력하면 즉시 ajax 비헤이비어 이벤트가 발생하지 않는 문제가 있습니다.JSF 2 ajax 비헤이비어 이벤트 리스너가 날짜에 실행되지 않습니다.

필드가 문제가없는 문자열이지만 날짜를 사용하고있는 경우.

XHTML :

<h:outputLabel value="Date of Birth:" /> 
<h:inputText id="searchDOB" value="#{search.dob}" required="true"> 
    <f:ajax event="keyup" listener="#{search.addHyphensToDOB}" render=":output" /> 
    <f:convertDateTime pattern="dd-MMM-yyyy" /> 

콩 :

22 JAN-

:

Date dob; 

public void addHyphensToDOB(AjaxBehaviorEvent abe) { 
    System.out.println("addHyphen"); 
} 

이벤트는 다음을 입력 한 후 해고

두 번째 하이픈 다음에 숫자가 나오지만 이전에는 표시되지 않습니다.

하나의 해결 방법은 날짜 유형을 문자열로 변경 한 다음 변환기를 사용하지 않고 형식을 지정할 수 있지만 날짜 유형을 유지하고 싶습니다.

의견, 감사합니다.

이클립스 3.7, 바람둥이 7 jsf2.1, 변환 오류로 인해 잘못된 날짜 형식으로 발생하기 때문에

답변

1

그것은 해고 아닙니다. 제출 된 값은 Bean Listener 메소드가 히트되기 전에 매번 변환됩니다. <h:message>/<h:messages>을 추가하고 ID를 <f:ajax render>에 포함시킵니다. 그러면 그것을 볼 수 있습니다.

dd-MMM-yyyy 패턴으로 해석 할 때 극단적으로 유효한 Date 객체를 나타낼 수 2 예에 대한의 값 String.

이런 식으로 기능 요구 사항을 충족하려면 실제로는 String으로 지정해야합니다. 전혀 다른 대안으로, JSF ajax 요청을 보내지 않고 JavaScript 측에서 완전히 다른 방법을 고려할 수 있습니다.

+0

클라이언트 측 유효성 검사가 가장 좋을 것 같습니다. 당신의 도움을 주셔서 감사합니다. – wwhite

+0

오, 전적으로 유효성 검사를 위해서입니까? 키 업 대신 변경 또는 흐림 효과를 적용 할 수도 있습니다. – BalusC

+0

'onkeyup = "addHyphens()"'를 사용했습니다. 고마워요. – wwhite

관련 문제