不要质疑你的付出,这些都会一种累积一种沉淀,它们会默默铺路,只为让你成为更优秀的人。
基于配置文件的表单验证方式,可以减少Java代码的编写。
1.验证Action的所有方法
如果要验证的Action是“LoginAction”,那么配置文件需命名为“LoginAction-validation.xml”
LoginAction-validation.xml代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空!</message>
</field-validator>
</field>
<field name="tele">
<field-validator type="requiredstring">
<message>手机号不能为空!</message>
</field-validator>
</field>
<field name="tele" >
<field-validator type="regex">
<param name="regexExpression"><![CDATA[^1[34578]\d{9}$]]></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>
LoginAction代码:
package com.action;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
private String username;
private String tele;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getTele() {
return tele;
}
public void setTele(String tele) {
this.tele = tele;
}
public String execute(){
return "success";
}
}
以上代码是对Action的所有方法进行验证,但通常不需要全部验证,也需要对指定方法进行验证。
2.验证Action的指定方法
基于xml的指定方法验证也很简单,将配置文件名改为如下格式:
ActionClassName-ActionMethodName-validation.xml 即可。
比如:
Action的类名是:LoginAction
Struts.xml中Action的方法名是:doFirst
则:LoginAction-doFirst-validation.xml
3.常用验证方式
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空!</message>
</field-validator>
</field>
<field name="tele">
<field-validator type="requiredstring">
<message>手机号不能为空!</message>
</field-validator>
<field-validator type="regex">
<param name="regexExpression"><![CDATA[^1[34578]\d{9}$]]></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
<field name="tele2">
<field-validator type="requiredstring">
<message>确认手机号不能为空!</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression"> tele==tele2</param>
<message>手机号两次不一致!</message>
</field-validator>
</field>
</validators>