以前一直没有用过struts的validation框架,今天试了一下。
测试环境:
tomcat6 ,jdk1.5,IE7 ,Firefox3
需要的文件
validator-rules.xml(myeclipse 生成,或者在网上下载)
validation.xml(自己添加)
ApplicationResources.properties(struts自身的资源文件)
包
commons-validator.jar(validation需要)
jakarta-oro.jar(validation需要)
struts.jar
(client)javascript验证步骤:
1 通过myeclipse插件,添加了struts的代码,自动在WEB-INF有validator-rules.xml文件
。validator-rules.xml文件当中包含了所有一般的验证代码。(一般情况下不用修改)
2 编写validation.xml
?
?<form-validation>
?<formset>
??<form name="userForm">
???<field property="userName" depends="required">
????<arg0 key="userForm.userName">
???</field>
???<field property="userPassword" depends="required,minlength,maxlength">
????<arg0 key="userForm.userPassword">
????<arg1 key="${var:minlength}" name="minlength" <br="">?????resource="false" />
????<arg1 key="${var:maxlength}" name="maxlength" <br="">?????resource="false" />
????
?????<var-name>maxlength</var-name>
?????<var-value>16</var-value>
????
????
?????<var-name>minlength</var-name>
?????<var-value>3</var-value>
????
???</field>
??</form>
?</formset>
</form-validation>
|
??注意如果:lib中存在commons-digester.jar的话,需要注意validator-rules.xml和validation.xml的DTD
?我这里用的是struts1.2.9,DTD是validator_1_1_3.dtd
3 编写ApplicationResources.properties文件
? 添加
? # Struts Validator Error Messages
?? errors.required={0} is required.
?? errors.minlength={0} can not be less than {1} characters.
?? errors.maxlength={0} can not be greater than {1} characters.
?# custom Validator parameter
?? userForm.userName = username
?? userForm.userPassword = password
|
?4 在对应的XXX.jsp
? 添加
? a:
? ?自动生成对应的javascript代码
? b:????onsubmit="return validateUserForm(this)">
? onsubmit="return validateUserForm(this)"
??????? 添加的是验证form的代码
?
根据这些步骤网上的前辈都说可以调试通过。但是我经过的我的测试发现
struts1.1 ,和struts1.2都存在相同的问题
这里用IE7+Compasion JS+ms debugger或者是Firefox3+Venkman调试
错误点1:
在调用oRequired = eval('new '+formValue+'_required()');出现出错
在Venkman中查看formValue变量。天啊,居然有变量后面有个空格。
反编译commons-validator,查看commons-validatororgapachecommonsvalidatorjavascript源码
js中添加下列函数
?function trim(s) {
??????? return s.replace( /^s*/, "" ).replace( /s*$/, "" );
??? }
oRequired = eval('new '+formValue+'_required()')改为
oRequired = eval('new '+trim(formValue)+'_required()')
|
?
错误点2:
XXX_required () {...}居然又有空格。
反编译struts.jar,查看strutsorgapachestruts aglibhtmlJavascriptValidatorTag
修改append(" () { ")为append("(){ ")
最后重新将这两个东西进行jar打包,测试通过。
分享到:
相关推荐
Struts Validation框架浅尝,Struts Validation框架浅尝Struts Validation框架浅尝
NULL 博文链接:https://yueguangyuan.iteye.com/blog/268000
Struts2中Validation数据验证框架教程 struts2中validation框架_前台验证 struts2中validation框架_后台验证
Struts2提供了一些基于XWork Validation Framework的内建验证程序,它们大大简化了输入验证工作。 使用这些验证程序不需要编程,程序员只需要在一个XML文件里对验证程序应该如何工作做出声明就行了。需要声明的内容...
Struts1.2中的validation验证框架的实现步骤
Jakarta Sturts:Manually Validating Input & Jakarta Sturts:Automatically Validating Input
从...相信对正在学习Struts2的朋友有很大的帮助,最后还要说重申,所用资料均来源于互联网,所有版权归原作者所有! 上班时间偷偷做的,希望能对大家有所帮助,多多交流!
Struts validation 验证框架配置,简单易懂,一看就会
struts2中两种validation.xml的配置方式
struts的validation验证框架源码!
Struts2 form Validation
比较详细的struts2 validation资料
NULL 博文链接:https://lxh2002.iteye.com/blog/718662
struts验证框架-validation的验证框架
SVT(Struts Validation Toolkit)是Struts的验证框架。 您可以用 Java 编写简单的验证代码。 这将允许您编写更灵活的规则,而不是编写validation.xml 文件。
列举了多种格式验证方法。如日期、字符、数字等
Struts2中的validation_多国语言版 国际化+struts2数据校验.zip
编制一个注册模块,使用validation框架来实现校验,至少使用4种以上的校验规则。
javaee的Struts实验项目