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

时间:2011-10-10 06:11:26

标签: jsf-2 bean-validation

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

class FormBean {
    void saveForm() {
         if (! doValidate()) {
             FacesContext.addMessage(...);
             return;
         }
         ...
     }
     void doValidate() { ... }
 }

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

1 个答案:

答案 0 :(得分:9)

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

<h:inputText value="#{bean.name}">
  <f:validateBean disabled="true"/>
</h:inputText>

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