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 回答