您的位置:首页 > 编程语言 > Java开发

struts ValidatorForm的数据验证常见错误分析

2013-06-15 12:09 344 查看
1 看项目中是否存在validtor_rules.xml文件
2 看项目中的validator.xml中的配置相关项是否与表单中的属性名称相一致.例如表单的名称.文本框的属性名称.
3 看validator.xml和validator-rules.xml与struts的包是否兼容,应该是高版本的配置高版本的jar包
org.apache.struts.validator.FieldChec
ks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorActi
on, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, j
avax.servlet.http.HttpServletRequest)之类的错误信息的问题。
这个错误的原因是因为所使用的struts.jar与WEB-INF下的validator-rules.xml版本不一样而引起的,比如你使用的struts.jar包是最新的1.2.8(笔者今天刚下载的最新版本),而你的validator-rules.xml文件却是对应struts1.1或者更低版本的,如何知道validator-rules.xml的版本低呢?我们可以从validator-rules.xml中的开始几行可以看出来,如下所示:
<!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">
以上的版本为validator_1_1_3.dtd,是目前validator-rules.xml最高的版本,对应的struts。jar包也是比较高的,为1.2及以上的版本,在笔者为这个问题处于郁闷中时,使用的struts.jar为1.2以上,但是我使用的validator-rules.xml为validator_1_1_0.dtd,所以总是出现我上面说的那个错误信息,后来俺换了个版本低的struts.jar,结果验证可以成功,但是由于我的系统只能使用高版本struts的,所以没有办法,我只好去下了个高版本的validator-rules.xml,才最后把问题解决。
4.看struts-config.xml文件中是否配置validator-rulesl.xml和validtor.xml插件.
5看struts-config.xml文件中的<form-bean/>和<action />配置是否成功.
6 查看bean和action文件是否编写.
7 看资源文件中相关配置的信息是否存在
8程序通过还没显示错误信息,看jsp文件中是否有<html:errors/>标签
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: