Validation 我们可以在Struts1.2中同时使用表单和xml验证吗?

Validation 我们可以在Struts1.2中同时使用表单和xml验证吗?,validation,xml-validation,struts1,Validation,Xml Validation,Struts1,我有以下问题: 我们有一个Struts应用程序。基本上,它使用xml验证来验证字段。 我添加了表单验证,以立即验证一组复选框(没有找到一种方法来验证是否至少选中了一个复选框,但这是另一个故事…) 因此,我的表单验证工作正常,但xml验证不再工作。但是,当我删除我添加的表单验证时,它再次起作用 重述: 1-仅xml验证:有效 2-仅表单验证:工作 3-同一操作的XML和表单验证:仅表单验证有效 我们可以在一个操作上同时使用这两种验证吗 终于我自己找到了问题的根源 它与验证顺序有关: 在我的例子中,

我有以下问题:

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

因此,我的表单验证工作正常,但xml验证不再工作。但是,当我删除我添加的表单验证时,它再次起作用

重述:

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

我们可以在一个操作上同时使用这两种验证吗


终于我自己找到了问题的根源

它与验证顺序有关: 在我的例子中,Struts从XML验证开始,并将结果存储到一个全局对象中

操作错误

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

ActionErrors errors  = new ActionErrors() ; 
。。。wich替换全局ActionErrors对象

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

ActionErrors errors = super.validate(mapping, request);
if (errors == null) {
errors = new ActionErrors();
}
。。通过这种方式,我们可以保留XML验证已经发现的错误,而不替换它们