1、 启动Tomcat出错
错误信息:Parse Error at line 6 column 16: Document root element "struts-config", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "struts-config", must match DOCTYPE root "null".
Parse Error at line 6 column 16: Document is invalid: no grammar found.
org.xml.sax.SAXParseException: Document is invalid: no grammar found.
类似这样的错误,是因为在自动产生的struts-config.xml文件中缺少DOCTYPE的定义,在<struts-config>前面一行增加这样的内容就可以了:
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
另外在文件validation.xml和validator-rules.xml中的<form-validation>之前增加:
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator RulesConfiguration .1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_2_0.dtd">
2、 Tomcat启动过程进行validator的初始化时出错:
错误信息:
org.apache.struts.validator.ValidatorPlugIn init
严重: null
java.lang.NullPointerException at rg.apache.commons.validator.ValidatorResources.internalProcessForms(ValidatorResources.java:464)
此时访问web会在页面出现这样的错误信息:
HTTP Status 404 - Servlet strutsController is not available
type Status report
message Servlet strutsController is not available
description The requested resource (Servlet strutsController is not available) is not available.
原因:使用的库:commons-validator.jar可能和struts不匹配。
解决办法:下载1.3.1.版的commons-validator.jar,并替换/WEB-INF/lib下的同名文件即可。下载地址:http://www.apache.org/dist/commons/validator/binaries/commons-validator-1.3.1.tar.gz
3、 validator的验证过程不生效
在struts-config.xml文件的action定义中,注意要使能validation,即:validate="true",否则不执行验证过程。