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

标签 validation jsf-2 input primefaces

我想禁用一个输入字段 inputtext 的默认 JSF 验证和转换,以便能够使用 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} 绑定(bind)到 Double 属性。

我怎样才能做到这一点?

最佳答案

据我在目前提供的信息中看到的那样,该组件还没有经过验证。也许当您将非 String 类型绑定(bind)为输入组件的值时,您特别指的是隐式转换?不,你不能禁用它。您只能通过提供一个不抛出异常但在失败时返回 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 完全在客户端运行,最终用户可以完全控制正在执行的代码。 IE。最终用户可以轻松禁用、绕过、欺骗它等。另请参见 JSF2 Validation Clientside or Serverside?

关于validation - 如何禁用一个输入字段的默认 JSF 验证和转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16204743/

相关文章:

javascript - 验证表单并计算错误

javascript - 在 eclipse luna 中启用 javascript 验证

java - Spring MVC(RESTful API): Validating payload dependent on a path variable

jsf-2 - <p :growl> and <p:messages> in a same page

file-upload - 如何使用 <p :fileUpload> 限制允许上传的文件数量

在 gstreamer 插件中的两个输入之间进行选择

c++ - 创建用户所需的输入对象数 C++

jquery 验证插件 - 显示错误与清除错误的不同处理

javascript - JQ和Js如何验证内容为空(空格键)

java - GlassFish JSF : IndexOutOfBoundsException no personalized classes in trace