和上篇博客一样, 我学习的视频时sturts1.2的, 而我使用的是1.3的, 所以继续通过官方文档挖掘两者异同= =
1. 为项目添加struts1.3的facet
自动添加的jar包中会有commons-validator-1.3.1.jar和oro-2.0.8.jar, 这里与1.2中的jar包名字会有所不同
2. validation.xml和validator-rules.xml
我看视频里1.2中的validator-rules.xml会自动出现在WEB-INFO文件夹下诶
在1.3中, 这个文件存在于struts-core-1.3.x.jar下的/org/apache/struts/validator/validator-rules.xml
至于validation.xml, 我没有找到在哪里, 所以从官方的example中copy了一份过来= = 放在WEB-INFO文件夹下
需要注意的是, 与1.2不同的是这一段中的版本号
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">
3. 根据validator-rules.xml中所说的, 填写ApplicationResources.properties
4. 在struts-config.xml中加入这一插件, 注意value中文件的位置哦
<plug-in className="org.apache.struts.validator.ValidatorPlugIn" >
<set-property property="pathnames"
value="/org/apache/struts/validator/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
下面就是如何使用
5. 在struts-config.xml中自动生成Action,Form和JSP
要注意Form需要继承ValidatorForm哦, 而且不能有validate()方法!
public class LoginForm extends ValidatorForm {
还是以login为例, 添加username和password方法
6. 在validation.xml中配置需要验证的property, 验证的类型, 报错的参数, 验证中的参数
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd">
<form-validation>
<global>
</global>
<formset>
<form name="loginForm">
<field
property="username"
depends="required">
<arg key="loginForm.username"/>
</field>
<field
property="password"
depends="required,mask">
<arg key="loginForm.password"/>
<var>
<var-name>mask</var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
</field>
</form>
</formset>
</form-validation>