2012-10-04 38 views
8

我有h:消息來顯示錯誤消息,並且有一個組件,我希望它的樣式在發生驗證錯誤時更改(如果任何組件有驗證錯誤或呈現任何驗證消息,則更改這個特定組件的風格)。JSF中的條件樣式

我知道要改變風格如果組件驗證錯誤的方式: JSF : Better way to check for existence of <h:message for="id"/>

,但我希望有一個更一般的方式,要改變風格,如果表單中任何成分是無效的,或者以其他詞語將呈現任何驗證消息。

請告訴如何做到這一點。

回答

17

您可以使用FacesContext#isValidationFailed()來檢查一般驗證是否失敗。

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

或者,您可以使用FacesContext#getMessageList()來檢查是否有任何面孔消息。這並不一定表示一般的驗證失敗,也可能是全球/成功的消息,這些消息已經在行動方法中加入了。

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