2011-10-10 45 views
2

我要處理JSR-303驗證自己,即得到驗證工廠和調用validate方法自己:如何在JSF中禁用整個bean驗證?

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

有沒有什麼辦法來禁用集成在JSF的Bean驗證?

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

更新: 在(這並不是說immediate="true",這不但會繞過驗證,同時也繞過更新模型階段)

回答

9

可以通過禁用該領域的驗證禁用爲了禁用Bean驗證默認情況下爲每一個輸入框,嘗試設置上下文變量:javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR與價值「真正

+1

嗯,我想禁用所有輸入的驗證。 –

+1

您也可以用'f:validateBean'包裝多個輸入組件,如下所示:http://stackoverflow.com/a/17503608/1725096 –