【问题标题】:How to get validation status from JSF component如何从 JSF 组件获取验证状态
【发布时间】:2012-07-18 13:20:54
【问题描述】:

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

<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>

【问题讨论】:

    标签: java validation jsf jsf-2


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 谢谢,但这行不通。也许有一种方法可以将 放入
    • 这是一个不同的要求。但是,第一个或第二个示例或两者都不起作用的确切原因是什么?会发生什么?
    • 我把这段代码放到页面中: 但“错误”一直存在。
    • 您必须使用component.valid 而不是inputText.validcomponent 是一个隐含的 el 对象,指向当前的 jsf 组件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2023-03-08
    • 2016-09-24
    • 1970-01-01
    相关资源
    最近更新 更多