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

时间:2012-10-04 12:48:10

标签: jsf jsf-2

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

如果组件有验证错误,我知道更改样式的方法: JSF : Better way to check for existence of <h:message for="id"/>

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

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

1 个答案:

答案 0 :(得分:21)

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

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

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

<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" />