[main] ERROR org.apache.struts.action.ActionServlet - Unable to initialize Struts ActionServlet due to an unexpected exception or error thrown, so marking the servlet as unavailable. Most likely, this is due to an incorrect or missing library dependency.
java.lang.NoSuchMethodError: org.apache.commons.validator.ValidatorResources.<init>([Ljava/net/URL;)V
at org.apache.struts.validator.ValidatorPlugIn.initResources(ValidatorPlugIn.java:244)
at org.apache.struts.validator.ValidatorPlugIn.init(ValidatorPlugIn.java:164)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:871)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
在利用vcommons-validator-1.3.1.jar验证框架验证时,报了以上错误...
因为validator-1.3.1版本支持格式的原因。
解压vcommons-validator-1.3.1.jar之后,查看它的dtd文件,这是该版本的dtd所支持的dtd文件版本,可以看出保持了良好的兼容性。
看看它的不同版本是如何定义validation.xml(当然也可命做他名)配置文件格式的,
这是validator_1_3_0.dtd版本的dtd文件定义格式,支持msg|arg|var属性
这是validator_1_1_3.dtd版本的dtd文件定义格式,支持msg|arg|arg0|arg1|arg2|arg3|var属性
如此对比就可以看出来在不同的版本下需要以不同的格式来配置验证文件了。
现在注意了,将validator-rules.xml和validation.xml的头文件修改为validator_1_1_3.dtd版本的格式:
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
以便支持msg|arg|arg0|arg1|arg2|arg3|var的配置形式。
按道理来说validator新版本的dtd文件是该支持老格式的,但是显然新的dtd版本抛弃了老的定义格式。
在搞定了配置文件的配置格式之后,我们就开始配置(还是习惯于旧版本的配置格式):
在ApplicationResources_zh_CN.properties中对默认的验证提示进行重新定义:
#---------------------------------------------public---------------------------------------------------------#
#modify the deafault ERROR
errors.required {0}\u4e0d\u80fd\u4e3a\u7a7a
errors.minlength {0}\u957f\u5ea6\u5fc5\u987b<{1}
errors.maxlength {0}\u957f\u5ea6\u5fc5\u987b>{1}
errors.invalid {0}\u9519\u8bef\u7684\u683c\u5f0f
errors.byte {0}\u4e0d\u662f\u5b57\u8282\u578b
errors.short {0}\u4e0d\u662f\u77ed\u6574\u578b
errors.integer {0}\u8bf7\u8f93\u5165\u6570\u5b57
errors.long {0}\u8bf7\u8f93\u5165\u6570\u5b57
errors.float {0}\u8bf7\u8f93\u5165\u6570\u5b57
errors.double {0}\u8bf7\u8f93\u5165\u6570\u5b57
errors.date {0}\u662f\u9519\u8bef\u65e5\u671f\u683c\u5f0f
errors.range {0}\u5fc5\u987b\u4ecb\u4e8e{1}\u548c{2}\u4e4b\u95f4
errors.creditcard {0}\u662f\u9519\u8bef\u4fe1\u7528\u5361\u53f7
errors.email {0}\u9519\u8bef\u7684email\u683c\u5f0f
errors.url {0}\u9519\u8bef\u7684url\u683c\u5f0f
在ApplicationResources_zh_CN.properties中定义属性以及该属性的验证提示信息:
planWorkOrder.ptvalue
#difined msg inf
errors.planWorkOrder.ptvalue.double \u8bf7\u8f93\u5165\u6570\u5b57
在validation.xml文件中配置验证:
<form name="xxForm"><!--对应struts-config.xml中的配置文件的fromBean的name属性值-->
<!--属性 ptvalue-->
<field property="ptvalue" depends="required,maxlength,double">
<msg key="errors.planWorkOrder.ptvalue.double" name="double"/>
<arg0 name="required" key="${var:required}" resource="false"/><!-- resource="true"验证提示取自资源文件,false取自var变量 -->
<arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
<var>
<var-name>required</var-name>
<var-value>值</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>4</var-value>
</var>
</field>
</form>
当然struts-config.xml中引入validator验证框架和资源文件是必不可少的
<message-resources parameter="ApplicationResources" />
<!-- 引入struts.validator验证框架 -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
这样便可以验证成功!
分享到:
相关推荐
Struts1.3 与1.2向比验证框架部分还是有所区别的,该例子通过一个简单的Email的校验,演示如何通过Struts Validate验证框架进行在页面中生成JavaScripte脚本,进行客户端校验。下完后记得评分,资源分就会回来,还能...
Struts1的validator验证框架
struts1.3 validator_1_3_0实现的简单的验证例子
struts中使用validator框架由简单到复杂的三个实例,附加说明。
Struts Validator验证框架详细讲解.txt
struts 的validator框架验证,入门好例!!!!
struts validator验证框架项目,都是很常用的验证,比如用户名满足6位以上,密码与确认密码必须相同,日期格式必须为yyyy-MM-dd等等
validator框架验证入门例子 struts1.x validator框架验证入门例子
在struts1.x版本中使用validator验证框架实例。
Spring + struts + hibernate (原创) Validator 验证 系统配置 :myEclipse7.5 Spring 1.2 +hibernate3.1 +struts 1.3 添加的顺序不能乱否则会出错 很好的一个入门教材
struts应用中使用了validator验证框架,它为struts提供了灵活的验证规则,而无需编程
08 Struts_08DynaValidatorForm : Struts框架的Validator验证框架 09 Struts_09Token : Structs的令牌机制,避免重复提交问题 10 Struts_10SmartUpload : structs的文件上传 11 Struts_11Internationalize : Structs...
该jar中写了一个经典三个框架的整合,并有详细的中文描述,希望能给初学java或者刚工作的同事祝你们一臂之力,
该demo是struts验证器validator使用,以及struts基本配置,自定义创建struts的验证器,使用maven创建管理工程,使用eclipse编译器
Validator验证框架,STRUTS动态验证的规则与规范!
Validator验证框架 回顾ActionForm的表单验证,掌握Validator验证框架.zip
Validator验证框架.pdf
Struts Validator验证器使用指南 <br>验证器: 从0.5版,验证器在一些form中就已经实现了,他最初包含在开发人员包中,后来核心代码挪到Jakarta Commons包中和Struts特别扩展中作为 Struts 1.1的一部分。...
NULL 博文链接:https://finally-m.iteye.com/blog/360789