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

Posted

技术标签:

【中文标题】验证通常失败时 JSF 中的条件样式【英文标题】:Conditional style in JSF when validation has failed in general 【发布时间】:2012-09-25 12:18:24 【问题描述】:

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

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

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

请告知如何实现。

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

以上是关于验证通常失败时 JSF 中的条件样式的主要内容,如果未能解决你的问题,请参考以下文章

当jsf验证失败时,跳过ajax

具有渲染属性的jsf组件验证失败

JSF 2.1 条件字段验证

托管 bean 问题中的用户输入验证(JSF 2.0)

为啥我的 JSF 复合方面的验证在未呈现方面时完成

如何对 jsf 复合组件中的集合属性进行 bean 验证,约束不会触发