2012-10-04 27 views
8

エラーメッセージを表示するメッセージがあり、検証エラーが発生した場合にそのスタイルを変更したいコンポーネントがあります(コンポーネントに検証エラーがあるか、検証メッセージがレンダリングされてから変更されるこの特定のコンポーネントのスタイル)。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'}" /> 
関連する問題