Struts2基于XML配置方式实现对action的所有方法进行输入校验

使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类放在同一个包下,文件的取名格式为:ActionClassName-validation.xml。ActionClassName为action的简单类名,-validation为固定写法。如果Action类为cn.validate.action.UserAction,那么该文件的取名为:UserAction-validation.xml。

下面是xml配置信息

Validation.xml
 1 <!DOCTYPE validators PUBLIC
2 "-//Apache Struts//XWork Validator 1.0.2//EN"
3 "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">
4
5 <validators>
6 <field name="username">
7 <field-validator type="requiredstring"><!-- 必填字符串校验器 -->
8 <param name="doTrim">true</param><!-- 去掉两边空格 -->
9 <message>用户名不能为空</message>
10 </field-validator>
11 </field>
12 <field name="mobile">
13 <field-validator type="requiredstring"><!-- 必填字符串校验器 -->
14 <param name="doTrim">true</param><!-- 去掉两边空格 -->
15 <message>手机号码不能为空</message>
16 </field-validator>
17 <field-validator type="regex"><!-- 正则表达式校验器 -->
18 <param name="expression"><![CDATA[^1[358]\d{9}$]]></param><!-- 表达式 -->
19 <param name="caseSensitive">false</param><!-- 区分大小写 -->
20 <param name="trim">true</param><!-- 去掉两边空格 -->
21 <message>手机号码格式不正确</message>
22 </field-validator>
23 </field>
24 </validators>


action类:

XmlValidationAction.java
 1 package cn.validate.action;
2
3 import com.opensymphony.xwork2.ActionContext;
4 import com.opensymphony.xwork2.ActionSupport;
5
6 @SuppressWarnings("serial")
7 public class XmlValidationAction extends ActionSupport {
8 private String username;
9 private String mobile;
10
11 public String getUsername() {
12 return username;
13 }
14
15 public void setUsername(String username) {
16 this.username = username;
17 }
18
19 public String getMobile() {
20 return mobile;
21 }
22
23 public void setMobile(String mobile) {
24 this.mobile = mobile;
25 }
26
27 public String update() {
28 ActionContext.getContext().put("message", "update success!");
29 return "success";
30 }
31
32 public String sace() {
33 ActionContext.getContext().put("message", "save success!");
34 return "success";
35 }
36 }

 

对于指定方法进行校验我们又该怎么做呢?

很简单,我们只需要改下xml文件名即可。格式为ActionClassName-ActionName-validation.xml,其中ActionName为struts.xml中action名称。

比如:在XmlValidationAction中的update()进行校验,我们把xml文件名改为 XmlValidationAction-validation_update-validation.xml即可,其他的都一样。

 

另外struts还提供了很多校验器,我发一些常用的出来,至于用法,大家可以看框架的源码,所属包为com.opensymphony.xwork2.validator.validators

struts框架提供的校验器
required必填校验器
requiredstring必填字符串校验器
stringlength字符串长度校验器
regex正则表达式校验器
int整数校验器
double双精度浮点型校验器
filedexpression字段OGNL表达式校验器
email邮件校验器
url网址校验器
date日期校验器
conversion转换校验器
visitor用于校验action中的符合属性
expressionOGNL表达式校验器

 

posted @ 2012-03-15 17:05  Paul.Lau  阅读(3246)  评论(0编辑  收藏  举报