Struts2的数据校验:
数据的校验分为客户端校验和服务器端两种:
客户端校验:JS完成的校验.(为了提升用户体验.减少用户的输入错误)
服务器端校验:在后台的校验.(必须的.)
手动编码进行校验:
1.编写一个Action,这个Action必须继承ActionSupport.
2.重写validate方法:---针对Action中的所有方法进行校验.
@Override
// Struts2提供的数据校验的方法:
public void validate() {
if(username == null || username.trim().length() == 0){
addFieldError("username", "用户名不能为空!");
}
if(password == null || password.trim().length() == 0){
addFieldError("password", "密码不能为空!");
}
}
***** 如果针对Action中的某一个方法校验呢?校验add方法.
* 编写方法 validateAdd();
使用XML配置校验方式:
1.编写一个Action继承ActionSupport
2.提供对应属性的get方法.---为了在XML中获得到变量的值.
3.在Action所在包下创建一个与Action类名相同的-validation.xml文件.
* 如XML的名称为:RegistAction2-validation.xml
* 引入DTD:xwork-core-2.3.7.jar/xwork-validator-1.0.3.dtd
* XML中的配置:
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空!(XML)</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>密码不能为空!(XML)</message>
</field-validator>
</field>
</validators>
***** 使用XML的校验方式如何针对某一个方法进行校验?
* 在Action所在的包下创建一个与Action类同名-方法对应的<action>的name-validation.xml
<action name=”regist2” class=”” method=”execute”>
创建的xml的名称为:RegistAction2-regist2-validation.xml
<validators>
<field name="password">
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">12</param>
<message>密码必须在6-12位之间!(XML)</message>
</field-validator>
</field>
</validators>
综合练习:
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空!</message>
</field-validator>
</field>
<!-- 校验密码 -->
<field name="password">
<field-validator type="requiredstring">
<message>密码不能为空!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">12</param>
<message>密码需要在6-12位之间</message>
</field-validator>
</field>
<!-- 校验确认密码 -->
<field name="repassword">
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[(password==repassword)]]></param>
<message>两次密码输入不一致!</message>
</field-validator>
</field>
<!-- 校验年龄 -->
<field name="age">
<field-validator type="int">
<param name="min">18</param>
<param name="max">60</param>
<message>年龄必须在18-60之间</message>
</field-validator>
</field>
<!-- 生日 -->
<field name="birthday">
<field-validator type="date">
<param name="min">1954-01-01</param>
<param name="max">1996-12-31</param>
<message>生日需要在54-96年之间的</message>
</field-validator>
</field>
<!-- 校验邮箱 -->
<field name="email">
<field-validator type="email">
<message>邮箱格式不正确</message>
</field-validator>
</field>
<!-- 电话 -->
<field name="phone">
<field-validator type="regex">
<param name="expression"><![CDATA[^18\d{9}$]]></param>
<message>手机号格式不正确!</message>
</field-validator>
</field>
</validators>