繁体   English   中英

如何禁用默认的JSF验证和一个输入字段的转换

[英]How to disable default JSF validation and conversion of one input field

我想禁用默认的JSF验证和一个输入字段inputtext的转换,以便能够使用jQuery验证它。

<p:column headerText="Quantité"> 
    <p:inputText widgetVar="input_qte" styleClass="my_qte" value="#{arti.qte}">
        <f:validateBean disabled="true"/>
    </p:inputText> \
    <h:outputText styleClass="my_qtemax" value="#{arti.qtemax}" />
    <div class="my_validator" style="display : none;">Valeur Invalide</div>
</p:column>

#{arti.qte}绑定到Double属性。

我怎样才能做到这一点?

就我在目前提供的信息中看到的那样,已经没有对该组件进行验证。 当您将非String类型绑定为输入组件的值时,也许您特别指的是隐式转换? 不,你不能禁用它。 您只能通过提供不会抛出异常的自定义转换器来解决此问题,但只是在失败时返回null

例如,只需扩展标准JSF DoubleConverter并完全抑制getAsObject()上的ConverterException

@FacesConverter("lenientDoubleConverter")
public class LenientDoubleConverter extends DoubleConverter {

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        try {
            return super.getAsObject(context, component, value);
        } catch (ConverterException ignore) {
            return null;
        }
    }

}

然后用作:

<p:inputText ... converter="lenientDoubleConverter" />

具体问题无关 ,请注意客户端验证/转换绝对不可靠。 当JavaScript在客户端完全运行时,最终用户可以完全控制正在执行的代码。 即最终用户可以轻松禁用,绕过,欺骗它等。另请参阅JSF2 Validation Clientside或Serverside?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM