11

エラー メッセージを表示する h:messages があり、検証エラーが発生した場合にスタイルを変更するコンポーネントがあります (コンポーネントに検証エラーがある場合、または検証メッセージがレンダリングされた場合は、この特定のコンポーネントのスタイルを変更します)。 .

コンポーネントに検証エラーがある場合にスタイルを変更する方法を知っています: JSF : <h:message for="id"/> の存在を確認するより良い方法

しかし、フォーム内のコンポーネントが有効でない場合、つまり検証メッセージがレンダリングされた場合にスタイルを変更する、より一般的な方法が必要です。

それを達成する方法を教えてください。

4

1 に答える 1

24

FacesContext#isValidationFailed()一般的に検証が失敗したかどうかを確認するために使用できます。

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

または、FacesContext#getMessageList()顔メッセージがあるかどうかを確認するために使用できます。これは必ずしも一般的な検証の失敗を示すものではありません。つまり、アクションメソッドに追加されたグローバル/成功メッセージも存在する可能性があります。

<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" />
于 2012-10-04T13:06:49.400 に答える