我有 h:messages 来显示错误消息,并且有一个组件我希望在发生验证错误时更改其样式(如果任何组件有验证错误或呈现任何验证消息,则更改此特定组件的样式) .
如果组件有验证错误,我知道更改样式的方法: JSF:检查 <h:message for="id"/> 是否存在的更好方法
但我想要一种更通用的方法,如果表单中的任何组件无效,或者换句话说,任何验证消息都被呈现,则更改样式。
请告知如何做到这一点。
我有 h:messages 来显示错误消息,并且有一个组件我希望在发生验证错误时更改其样式(如果任何组件有验证错误或呈现任何验证消息,则更改此特定组件的样式) .
如果组件有验证错误,我知道更改样式的方法: JSF:检查 <h:message for="id"/> 是否存在的更好方法
但我想要一种更通用的方法,如果表单中的任何组件无效,或者换句话说,任何验证消息都被呈现,则更改样式。
请告知如何做到这一点。
您可以使用它FacesContext#isValidationFailed()
来检查验证是否通常失败。
<h:outputText ... styleClass="#{facesContext.validationFailed ? 'fail' : 'success'}" />
或者,您可以使用FacesContext#getMessageList()
检查是否有任何面孔消息。这不一定表示一般的验证失败,也可以是在操作方法中添加的全局/成功消息。
<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" />