2012-10-04 3 views
8

오류 메시지를 표시하는 메시지가 있고 유효성 검사 오류가 발생했을 때 스타일을 변경하려는 구성 요소가 있습니다 (구성 요소에 유효성 검사 오류가 있거나 유효성 검사 메시지가 렌더링 된 후 변경된 경우). 이 특정 구성 요소의 스타일). 내가 좀 더 일반적인 방법을 원하는 JSF : Better way to check for existence of <h:message for="id"/>JSF의 조건부 스타일

하지만, 스타일을 변경할 수있는 형태의 구성 요소가 유효 또는 기타에없는 경우 :

내가 구성 요소가 유효성 검사 오류가있는 경우 스타일을 변경하는 방법에 대해 알고 모든 유효성 검증 메시지가 렌더링됩니다.

그 방법을 알려주십시오.

답변

17

FacesContext#isValidationFailed()을 사용하여 유효성 검사가 일반적으로 실패했는지 확인할 수 있습니다.

<h:outputText ... styleClass="#{facesContext.validationFailed ? 'fail' : 'success'}" /> 

또는 FacesContext#getMessageList()을 사용하여 얼굴 메시지가 있는지 확인할 수 있습니다. 이것은 반드시 일반적인 검증 실패를 나타내는 것은 아니며, 즉 action 메소드에 추가 된 글로벌/성공 메시지 일 수도 있습니다.

<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" />