码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-10-03 11:49:41      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html

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

下面是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类:

 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表达式校验器

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

标签:

原文地址:http://www.cnblogs.com/sineatos/p/4853192.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!