我们可以在Struts 1.2中同时使用Form和xml验证吗?

时间:2013-10-04 01:55:09

标签: validation xml-validation struts1

我有以下问题:

我们有一个Struts应用程序。基本上它使用xml验证来验证字段。 我添加了表单验证以立即验证一组复选框(没有找到验证至少选中复选框的方法,但这是另一个故事......)。

所以我的表单验证工作正常,但xml验证不再有效。但是,当我删除我添加的表格验证时,它再次起作用。

回顾一下:

1-仅xml验证:工作 2-仅表格验证:工作 3-同一操作的XML和表单验证:仅表单验证工作。

我们可以在一次操作中使用这两种验证吗?

的Tx

1 个答案:

答案 0 :(得分:0)

最后我自己找到了问题的根源!

它与验证顺序有关系: 就我而言,Struts从XML验证开始,并将结果存储到全局对象

动作错误http://struts.apache.org/release/1.2.x/api/org/apache/struts/action/ActionErrors.html

...之后,Struts执行我在表单中添加的 validate()方法,但在行中我有以下行:

ActionErrors errors  = new ActionErrors() ; 

...替换全局ActionErrors对象。

表单中validate()方法的正确代码必须是:

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

..通过这种方式,我们可以保留XML验证已经找到的错误,我们不会替换它们。