您的位置:首页 > 编程语言 > Java开发

Struts2数据校验

2016-11-14 14:38 253 查看

1. 说明

通过编码方式进行校验

以前使用js完成数据校验:客户端的校验方式。

Struts2的数据校验:属于服务器端校验。

2. 定义Action

1 public class UserAction extends ActionSupport
2 {
3     // org.apache.struts2.interceptor.TokenInterceptor
4     private String uname;
5     private String upwd;
6     public String getUname()
7     {
8         return uname;
9     }
10     public void setUname(String uname)
11     {
12         this.uname = uname;
13     }
14     public String getUpwd()
15     {
16         return upwd;
17     }
18     public void setUpwd(String upwd)
19     {
20         this.upwd = upwd;
21     }
22     /****
23      * 继承ActionSupport,重写validate方法 在validate方法中,完成校验逻辑
24      * ***/
25     @Override
26     public void validate() {
27         System.out.println("-------------validate");
28         if(uname==null||"".equals(uname)){
29             super.addFieldError("uname", "用户名不能为空.....");[A3]
30         }
31     }
32     /**
33      * 只针针对用户的登陆请求,进行密码的验证 validateMethodName(MethodName处理某个具体的请求的方法名子)
34      * ***/
35     public void validateUserLogin()
36     {
37         if (upwd == null || "".equals(upwd))
38         {
39             super.addFieldError("upwd", "密码不能为空.....");
40         }
41     }
42     // 注册只验证用户名
43     public String userReg()
44     {
45         System.out.println(uname + "\t" + upwd);
46         return Action.SUCCESS;
47     }
48     // 用户名密码都验证
49     public String userLogin()
50     {
51         System.out.println(uname + "\t" + upwd);
52         return Action.LOGIN;
53     }


3. 注册Action

1 <package name="user" namespace="/" extends="struts-default">
2     <action name="userAction_*" class="com.guangsoft.action.UserAction"
3         method="{1}">
4         <result name="input">/index.jsp</result>
5         <result>/index.jsp</result>
6         <result name="login">/login.jsp</result>
7     </action>
8 </package>


4. 总结

继承ActionSupport,重写validate方法,实现校验逻辑。

校验流程:首先执行进行所有请求的校验的validate方法,在执行特定请求进行校验的validateXxx方法,然后struts2框架会根据保存错误消息的Map的size进行执行的流程控制

Map.size==0 放行,正常执行处理请求的方法

Map.size>0,struts2框架找名字为input的result。

5. 通过struts2的校验框架实现数据校验

自动校验。

在struts2中自定定义了校验器,封装了常用数据的校验逻辑。

5.1定义校验文件

封装校验器需要的参数

在需要校验的Action所在的包中定义文件:

ActionName-validation.xml :针对该Action的所有请求进行校验

ActionName-actionName_methodName-validation.xml :针对某个特定的请求进行校验

1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE validators PUBLIC
3         "-//Apache Struts//XWork Validator 1.0.3//EN"
4         "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
5 <validators>
6     <!-- 指定需要校验的字段 -->
7     <field name="uname">
8         <!-- 指定对该字段进行校验的校验器 -->
9         <field-validator type="requiredstring">
10             <!-- 错误的提示信息 -->
11             <message>xml-用户名不能为空....</message>
12         </field-validator>
13     </field>
14     <!--
15        <field name="age">
16             指定对该字段进行校验的校验器
17            <field-validator type="int">
18                <param name="max">50</param>
19                <param name="min">20</param>
20                <message>年龄不再指定范围....</message>
21            </field-validator>
22        </field>
23     -->
24 </validators>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: