2013-10-04 88 views
0

我有以下問題:我們可以在Struts 1.2中使用Form和xml驗證嗎?

我們有一個Struts應用程序。基本上它使用xml驗證來驗證字段。 我添加了表單驗證,以一次驗證一組複選框(沒有找到一種方法來驗證,至少在複選框的選擇,但這是一個其他故事...)。

所以我的表單驗證工作,但xml驗證不再有效。但是,當我刪除我添加的表單驗證,它再次工作。

總括:

1-只有XML驗證:工作 2-唯一形式驗證:工作 3- XML和表單驗證爲相同的動作:只有表單驗證工作。

我們可以在一個動作上使用兩種驗證嗎?

Tx

回答

0

最後我自己找到了問題的根源!

它與驗證順序的關係: 在我而言,Struts的與XML驗證,並把結果存儲到開始一個全局對象

的ActionErrorshttp://struts.apache.org/release/1.2.x/api/org/apache/struts/action/ActionErrors.html

...之後,搭片執行驗證()方法i的形式加入,但是在i行具有以下行:

ActionErrors errors = new ActionErrors() ; 

...將取代全局ActionErrors對象。

正確codeof Form中的validate()方法必須是:

ActionErrors errors = super.validate(mapping, request); 
if (errors == null) { 
errors = new ActionErrors(); 
} 

..這樣,我們可以保持已由XML驗證發現的錯誤,我們不更換。

相關問題