2012-02-17 2 views
1

JSF에서 ajax 수신기가 포함 된 selectOneMenu 요소에 유효성 검사기를 삽입하려고하면 Ajax 수신기가 작동하지 않습니다.Ajax 및 유효성 검사기가 함께 작동하지 않습니다.

<h:selectOneMenu id="metalCodes" converter="metalCodeConverter" required="true" requiredMessage="#{lang.metalStockIntroducing_metalCode_req_txt}" value="#{metalStockIntroducingProcessesBean.metal.metalCode}"> 
     <f:selectItem itemLabel="Please select..." noSelectionOption="true" /> 
     <f:selectItems value="#{metalStockIntroducingProcessesBean.metalCodesMenu}" /> 
     <f:ajax listener="#{metalStockIntroducingProcessesBean.changeMetalType}" event="change" execute="metalCodes" render="metalTypesMenu" immediate="false"/> 
     <f:validator validatorId="densityValidator"/> 
</h:selectOneMenu> 

당신 친구가 검증을하기 위해 어떻게 나에게 무엇을 추천 할 것입니다 및 아약스 청취자가 시간에 collaborately 작동 : selectOneMenu JSF 요소를 다음 내 JSF 내가 이야기하고 발행 할 특정 snipplet입니까?

+0

유효성 검사기가 단지 유효성 검사기 예외를 throw하지 않았는지 확인하십시오. 그건 그렇고, 당신은 "ajax4jsf"라고 태그를 붙 였지만 어디서나 a4j 태그를 보지 않을 것입니다. Ajax4jsf (RichFaces의 일부)를 실제로 사용하고 있습니까? 그것이 무엇인지 확실하지 않으면 태그 설명/정보를 읽으십시오. – BalusC

+0

친애하는 BalusC, 당신 말이 맞아요. 내 JSF에 대한 나의 가난한 지식은 내가 잘못된 방향을 쓸 수있게했다. 페이지에 태그가 표시되면 적절한 태그 중 하나가 A4J 여야합니다. 그러나 나는 틀렸고 Ajax 여야합니다. 오해의 소지가있는 정보를 유감스럽게 생각합니다. 나는 그 실수를 반복하지 않을 것이다. 그건 그렇고, 문제를 해결하기 위해 내가 어떻게해야한다고 생각하니? 감사합니다 ... –

+0

나는 태그를 편집하고 A4J 태그를 제거했습니다. –

답변

3

그들은 함께 잘 작동해야합니다. ajax listener 메소드는 validator가 예외를 던졌을 때만 호출되지 않습니다. 유효성 검사기가 잘못 수행하지 않았는지 확인하십시오. 입력 구성 요소와 연관된 <h:message> 또는 <h:messages>을 다시 렌더링하여 Ajax 요청 중에 얼굴 메시지를 알리도록하십시오. 또는 최소한 서버 로그를 읽으면 표시되지 않은 대기중인 메시지가 로그에 기록됩니다.

+0

이제 selectOneMenu 구성 요소에 대한 유효성 검사기 전략을 사용하면 경고 전에 알지 못했던 모든 변경에서 동적 동작으로 인해 적합하지 않음을 알았습니다. 내 경우에는 속성 전략을 사용해야한다. 그러나, 나는 유효성 검사기 클래스에서 속성 값을 검색 할 때 또 다른 문제점이있다. 나는 다른 문제를 열 ​​것이다. 멋진 도움을 주신 BalusC에게 감사드립니다. –

관련 문제