2012-10-04 16 views
8

Mam h: komunikaty wyświetlające komunikaty o błędach i istnieje komponent, który chcę zmienić jego styl w przypadku błędu sprawdzania poprawności (jeśli jakikolwiek składnik ma błąd sprawdzania poprawności lub jakikolwiek komunikat sprawdzający jest renderowany, a następnie zmień styl tego konkretnego składnika).Tryb warunkowy w JSF

wiem o sposób zmienić styl, jeśli składnik ma błędów walidacji JSF : Better way to check for existence of <h:message for="id"/>

ale chcę bardziej ogólny sposób, aby zmienić styl jeśli którykolwiek składnik w postaci nie jest poprawny, lub w inny wyrazy renderowane są wszystkie wiadomości sprawdzania poprawności.

proszę doradzić, jak to osiągnąć.

Odpowiedz

17

Możesz użyć FacesContext#isValidationFailed(), aby sprawdzić, czy sprawdzanie poprawności ogólnie się nie powiodło.

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

Można również użyć FacesContext#getMessageList(), aby sprawdzić, czy są jakieś wiadomości o twarzy. Nie musi to oznaczać ogólnego niepowodzenia sprawdzania poprawności, mogą to być również komunikaty globalne/dotyczące sukcesu, które zostały dodane w metodzie działania.

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