2013-05-12 12 views
3

我有一個-validation.xml文件來檢查表單的字段是否爲空以及那種簡單的驗證。我也有一個validate()方法(從ActionSupport擴展)來檢查更復雜的事情。但是當我發送表單時,它會檢查XML文件之前的方法,所以如果字段爲空,則會出現NullPointerException。至少這是我認爲正在發生的事情。validation.xml(驗證後的validate()方法

所以我的問題是,有沒有辦法改變驗證的順序,所以在方法之前檢查XML?

編輯:我檢查,如果該字符串不是在validate()法空,因此我能避免這個問題的想法,但我不認爲這是做最明智的事情。

回答

3

攔截器確實首先檢查XML,但是IIRC不會停止驗證它是否發現錯誤。我相信我有一個補丁,用旗子控制。

我已經解決了此問題,方法是檢查validate方法中的錯誤,如果存在錯誤則不會繼續。

1

該訂單始終爲1,即硬編碼訂單。驗證過程由ValidationInterseptor(至少版本2.3.8)執行。首先檢查是否啓用聲明性驗證,然後檢查是否啓用了編程驗證,然後執行。您可以通過攔截器參數打開/關閉每種驗證類型。

+0

謝謝,但不幸的是我需要兩個。我想我必須堅持那不是零驗證。 – Armaggedon 2013-05-12 18:34:46

+0

@Armaggedon在你影響默認設置之前,沒有任何東西可以阻止你擁有這兩者,但是你不能改變攔截器的執行順序或者編寫自己的攔截器進行驗證。訂單不是你在問題中發佈的內容,而是我的答案中發佈的內容。 – 2013-05-12 18:50:21

相關問題