验证失败时JSF中的条件样式

Mah*_*leh 11 jsf jsf-2

我有h:消息显示错误消息,并且有一个组件,我希望在发生验证错误时更改其样式(如果任何组件有验证错误或呈现任何验证消息然后更改此特定组件的样式) .

我知道如果组件有验证错误,改变样式的方法: JSF:检查是否存在<h:message for ="id"/>的更好方法

但我想要一种更通用的方法,如果表单中的任何组件无效,或者换句话说任何验证消息都会被渲染,则更改样式.

请告知如何实现这一目标.

Bal*_*usC 23

您可以使用FacesContext#isValidationFailed()检查验证是否一般失败.

<h:outputText ... styleClass="#{facesContext.validationFailed ? 'fail' : 'success'}" />
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用FacesContext#getMessageList()检查是否有任何面孔消息.这并不一定表示一般验证失败,也可能是在操作方法中添加的全局/成功消息.

<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" />
Run Code Online (Sandbox Code Playgroud)