使用Struts 1中的ValidateForm
,我们将能够验证Struts中使用的FORM,我查看了大量链接(https://cwe.mitre.org/data/definitions/103.html),仍然无法确定Struts中super.validate()
方法的功能
默认验证(在Struts中使用super.validate()
):
public class RegistrationForm extends org.apache.struts.validator.ValidatorForm {
// private variables for registration form
private String name;
private String email;
...
public RegistrationForm() {
super();
}
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = super.validate(mapping, request);
if (errors == null) {
errors = new ActionErrors();
}
return errors;
}
// getter and setter methods for private variables
}
在上面的代码中,super.validate()
方法的意义是什么?它执行的验证是什么?有人能解释一下吗?
1条答案
按热度按时间5vf7fwbs1#
它根据
validation.xml
中定义的规则执行请求参数的验证。它提供了基本的验证,如果你想使用自定义验证,那么你应该覆盖它的validate()
方法。下面是该方法的描述:验证已从此HTTP请求设置的属性,并返回一个
ActionErrors
对象,该对象封装已找到的任何验证错误。如果未找到任何错误,则返回null
或一个ActionErrors
对象,但不记录任何错误消息。What happens if you override
validate()
and not callingsuper.validate()
:如果您覆写validate方法且不呼叫
super.validate(mapping, request)
,则会取消Struts验证。请在您的程式码中执行此动作,以便透过validate()
方法的自订验证与透过validation.xml
的架构验证并存。