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

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

时间: 2024-07-30 10:17:55

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

Struts2基于XML配置方式实现对Action方法进行校验

JavaWeb框架(2) 使用XML对Action方法进行校验方式有两种,一种是对Action的所有方法进行校验,另一种是对Action指定方法进行校验. 对Action的所有方法进行校验: 步骤: 1.创建Action需要继承ActionSupport 2.提供校验的xml文件,该文件和action放在同一个包下 校验文件的取名格式为:PersonAction-validation.xml,其中PersonAction为action的简单类名,-valication为固定写法 示例: Acti

Struts2 之 Validation 拦截器 基于XML配置方式实现(验证框架)

基于XML配置方式实现输入校验 I:定义Action *  要继承ActionSupport或者实现Validateable接口: II:配置struts_validate.xml文件 *  验证出错转向的页面                struts.xml配置<result name=“input”>/validate/loginxml.jsp</result>                  其中input转向是在action中已经定义好的. III:配置验证的xml文件

Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析

Spring3.2 中 Bean 定义之基于 XML 配置方式的源码解析 本文简要介绍了基于 Spring 的 web project 的启动流程,详细分析了 Spring 框架将开发人员基于 XML 定义的 Bean 信息转换为 Spring 框架的 Bean Definition 对象的处理过程,向读者展示了 Spring 框架的奥妙之处,可以加深开发人员对 Spring 框架的理解. 0 评论: 秦 天杰, 软件工程师, IBM China 2013 年 9 月 02 日 内容 在 IBM

Bean的基于XML配置方式

基于XML配置 Beans.xml <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" 1.默认命名空间 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2.xsi标准命名空间,用于指定自定义命名空间的Sc

Spring 基于xml配置方式的事务

参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为为每个字段提供一个setXxx()方法 最后就是配置applicationContext.xml文件了.内容如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http:/

Spring 基于xml配置方式的事务(14)

参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为为每个字段提供一个setXxx()方法 最后就是配置applicationContext.xml文件了.内容如下: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http:/

Spring 基于xml配置方式的AOP

我们具体用代码来说明: 1.ArithmeticCalculator.java 1 package com.proc; 2 3 public interface ArithmeticCalculator { 4 int add(int i, int j); 5 int sub(int i, int j); 6 7 int mul(int i, int j); 8 int div(int i, int j); 9 } 2.ArithmeticCalculatorImpl.java 实现接口Arit

strut2基于XML配置方式对Action中的指定方法校验

当校验文件取名为ActionClassName-validation.xml时,会对action中的所有方法进行校验 .如果你需要对action中的某个方法实施校验,那么,校验文件的取名为 ActionClassName-ActionName-validation.xml.其中ActionName为struts.xml 中的action名字. 例如:对UserAction中的add()方法进行校验,校验文件名应该为:UserAction-user_add-validation.xml. User

struts2对action中的方法进行输入校验

有时我们需要对Action中注入的字段进行校验,这时我们就需要用到invidate()方法了. 首先需要Action实现ActionSupport,然后重写invidate()方法,在其中对字段进行校验. 如果校验合法,则执行action中的相应方法(一般为execute),请求转发到相应的jsp: 如果校验失败,可以通过addFieldError()方法将错误信息添加到FieldErrors中, 此时action中的相应方法(一般为execute)不会执行,struts2框架默认返回"inpu