如何在JSF中禁用整个bean验证?

Xiè*_*léi 2 bean-validation jsf-2

我想自己处理JSR-303验证,即获取验证工厂并自己调用验证方法:

class FormBean {
    void saveForm() {
         if (! doValidate()) {
             FacesContext.addMessage(...);
             return;
         }
         ...
     }
     void doValidate() { ... }
 }
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用JSF中集成的bean验证?(不是这样immediate="true",它不仅会绕过验证,还会绕过更新模型阶段)

Chr*_*idt 10

您可以通过禁用字段的验证器来禁用它:

<h:inputText value="#{bean.name}">
  <f:validateBean disabled="true"/>
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

更新:为了在默认情况下禁用每个输入字段的bean验证,请尝试设置上下文变量:javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR,其值为' true '