2012-11-02 25 views
2

在Struts2基本上有兩種方法來介紹驗證:你可以做到這一點無論是struts2 - 爲什麼要使用聲明性驗證?

  • 編程,或
  • 聲明。

綱領性驗證主要涉及執行你的動作類接口Validatable,該方法爲其void validate();將需要充實。如果將驗證問題報告給用戶,則存在更復雜的界面ValidationAware

聲明驗證,每個動作,以驗證被調用myactionname-validation.xml其中驗證使用的XML描述語言宣佈自己的驗證文件。


在公司,我的工作,我們正在使用的程序的驗證原則,與小尺寸驗證框架(內部編寫的),以幫助重用通用驗證模式。我剛剛在struts2書中讀到過,聲明式驗證是首選的方法。本書給出了很多關於如何設置說明性驗證的說明,但它幾乎沒有觸及的主題,爲什麼聲明式的方式更可取。

我看到了一些有時贊成聲明式XML風格配置的一般參數,但我不能真正看到它們適用於此:更改此配置(即驗證)是緊密耦合的通過動作處理的模型和用於修改模型上的值的GUI。這不是需要在沒有重新編譯的情況下「即時」配置的。

有什麼參數在struts2中使用聲明式樣式驗證?

是否值得去深入研究另一種XML標記方言,並且處理單獨的validation.xml文件?以編程方式進行編程並不容易,而且隨着Java源代碼(或者更確切地說,您所選擇的IDE)將爲您提供重構工具,結構化搜索等,而XML配置支持通常最多可容忍嗎?

+0

爲了什麼值得我更喜歡編程方法,並且我一直在使用該框架約五年。 –

回答

1

聲明式驗證更具可讀性,非常強大且可定製。 而且在一個寫得很好的Web應用程序中(好的DTO或VO定義,每個要執行的邏輯動作需要一個動作),您可以通過多種方式共享它。例如,如果使用Visitor驗證器(用於驗證來自JSP的對象列表),則將.xml文件放在對象包(具有對象名稱)中,而不是放在操作包中,並且如果使用該對象在多個操作中,您只需編寫一次驗證規則,然後重複使用多少次。

我不是XML配置的粉絲,但之後以舊的方式幾個項目,我發現這種驗證的全部潛力,我也不會回來。

就拿你可能想知道的一些技巧一看at this

+0

+1例如使用訪問驗證器。 –