java - 如何从 JSF 组件获取验证状态

标签 java validation jsf jsf-2

我想将一个特殊的错误类设置为 div block 到我的 JSF 自定义组件中。如果此字段未通过验证,我想将 errorClass 设置为“error”。

<c:if test="${?????}">
    <c:set var="errorClass" value="error" />    
</c:if>

<div class="input ${errorClass}">
    <label for="#{rich:clientId('input')}:input">#{cc.attrs.label}</label>
    <h:inputText id="input" value="#{cc.attrs.value}"
        <cc:insertChildren />
    </h:inputText>
</div>

最佳答案

您可以在 inputText 的 style 或 styleClass 属性中使用 component.valid:

<h:inputText value="#{cc.attrs.value}" 
             styleClass="#{component.valid ? '' : 'error'}" />

但是,这在您的 div 中不起作用,因为它不是 jsf 组件。您可以尝试组件绑定(bind)(从理论上讲,未经测试):

<div class="#{myComponent.valid ? '' : 'error'}">
    <h:inputText id="input" value="#{cc.attrs.value}" binding="#{myComponent}">
        <cc:insertChildren />
    </h:inputText>
</div>

关于java - 如何从 JSF 组件获取验证状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11559460/

相关文章:

Java DecimalFormatter - Locale DE 和 Locale US 之间的不同行为

c# - ASP.NET : Extended range validation

jQuery 验证 : How to not display errors? 或如何将错误显示为工具提示?

java - 我如何从 <h :selectManyCheckbox> 获取值(value)

java - EJB - 对有状态 session Bean 进行 JNDI 查找时出现序列化错误

java - 分隔字符串中的输入列表

java - 在 Paintcomponent 中调整大小

c# - DropDownListFor 用于验证有问题的复杂模型

jsf - @FacesComponent 中的 @Inject 值 null

jsf - Primefaces 的 commandLink 仅适用于数据表的第一页