2012-04-20 2 views
0

이제 JSF 2.0 및 facelet을 사용하여 일부 웹 페이지를 만듭니다. 로그인 패널 이외의 다른 것들을 포함하는 로그인 페이지가 있습니다.facelets 페이지의 일부 요소에 대해 동일한 메시지 사용

사실이 패널의 두 입력 필드 (사용자 이름 및 비밀번호)에 대해 동일한 메시지를 패널 위에 표시하려고하지만 둘 모두에 대해 하나의 메시지 만 표시하려고합니다. <h:messages>을 사용하면 코드가 올바르게 표시되지만 다른 구성 요소의 다른 모든 메시지도 함께 표시됩니다. <h:messages>은 전체 facelet에 대해 Global이기 때문에.

두 개의 <h:message for="">을 사용하고 두 입력 필드에 동일한 메시지를 추가하려고했지만 메시지가 두 번 표시됩니다.

메시지는 "username 및/또는 password is incorrect"입니다.

그 중 하나라도 잘못된 경우 메시지를 표시하려면 어떻게해야합니까?

답변

1

FacesContext.addMessage (..) API를 통해 백킹 빈에서 수동으로 메일을 추가하는 경우 사용자 이름 입력란이나 전체 로그인 패널에만 'em'을 추가 할 수없는 이유는 무엇입니까? ,

<h:message for="password" rendered="#{username.valid}"/> 
<h:message for="username"/> 
<h:inputText id="username" binding="#{username}"/> 
<h:inputText id="password" binding="#{password}"/> 

또는 다른 한편으로

<h:outputText value="msg['genericErrorMessage']" rendered="#{!username.valid || !password.valid}"/> 

:이 사용자 정의 유효성 검사기를 사용하는 경우

, 다음() 메소드를 UIInput.isValid을 활용하고 시도 할 수 있습니다 사용자 이름과 암호 필드 모두에 대해 동일한 유효성 검사를 두 번 적용해야하는 이유가 명확하지 않습니다.

+0

감사합니다. 정말로 도움이 되었기 때문에, 나는 UIInput.isValid(); 나는 2 가지 조건과 동일한 메시지를 표시하기 때문에 그것을 좋아하고 싶었습니다. – engma

관련 문제