1. validation.xml中如果不包含文档头,能运行,但会报错,文档头如下,它的版本可以在commons-validator.jar解压后的commons-validator/org/apache/commons/validator/resources中看到
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
2. Struts中的Form中的validate函数要注释掉,如不注释,将执行它而不执行验证程序validation.xml;并且该Form类继承的是ValidatorForm类。
3. struts-config.xml中的<action-mappings >中的参数validate要为"true"
4. 要让验证机制能够找到,也需要在struts-config.xml中包含以下代码:
在<message-resources .......>后面添加
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
5. 在struts-config.xml中也因为可能的疏忽,把对应的Form包名写错,导致错误,包名写的位置为:
<form-beans >
<form-bean name="registerForm" type="com.yourcompany.struts.form.RegisterForm" />
</form-beans>
写错为:
<form-beans >
<form-bean name="registerForm" type="com.yourcompany.struts.form.ValidatorForm" />
</form-beans>
产生的错误代码头行为:
org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception creating bean of class com.yourcompany.struts.form.ValidatorForm: {1}
6. struts标签包的位置可以从网络位置:
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
改为本地位置: