1.需求
1.1在用户提交表单时,需要对用户的表单数据进行验证。如验证如下表单
<s:form action="register" method="post" validate="true">
<s:textfield label="用户名" name="user.username"></s:textfield>
<s:password label="密码" name="user.password1"></s:password>
<s:password label="确认密码" name="user.password2"></s:password>
<s:textfield label="年龄" name="user.age"></s:textfield>
<s:textfield label="生日" name="user.birthday"></s:textfield>
<s:textfield label="email" name="user.email"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>
以下是数据的要求
1) 用户名:不允许为空,且长度在3至10之间
2) 密码:不允许为空,且必须是字母或数字,同时长度必须在4~15之间
3) 确认密码:必须和密码一致
4) 年龄:不允许为空,必须是整数,且必须在10~150之间
5) 生日:必须是日期类型,且必须在1990-01-01和2017-03-31之间
6) Email:必须符合email格式
2.实现struts的表单验证,以xml的方式
2.1使用struts2的xxxAction-validation.xml文件方式验证,文件与Action在同一个目录下,如果验证失败则调至result name=’input’
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.2//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
<validators>
<field name="user.username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="error.name.requiredstring"/>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">3</param>
<param name="maxLength">12</param>
<message key="error.namelength"/>
</field-validator>
</field>
<field name="user.password1">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="error.password1.requiredstring"/>
</field-validator>
<field-validator type="regex">
<param name="regexExpression"><![CDATA[(\w{6,16})]]></param>
<message key="error.password"></message>
</field-validator>
</field>
<field name="user.password2">
<field-validator type="requiredstring" short-circuit="true">
<param name="trim">true</param>
<message>确认密码不许为空</message>
</field-validator>
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[password1==password2]]></param>
<message key="error.passwordequals"></message>
</field-validator>
</field>
<field name="user.age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">150</param>
<message key="error.age"></message>
</field-validator>
</field>
<field name="user.birthday">
<field-validator type="date">
<param name="min">1980-01-01</param>
<param name="max">2011-01-01</param>
<message key="error.birthday">
</message>
</field-validator>
</field>
<field name="user.email">
<field-validator type="email">
<message key="error.email"></message>
</field-validator>
</field>
</validators>
2.2为了可扩展性,可以建议一个错误信息的资源文件
error.name.requiredstring=用户名不许为空
error.namelength=用户名的长度是${minLength}到${maxLength}之间
...
2.3如果验证成功了,将会继续执行Action