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>
相关文章推荐
- struts2中数据校验2
- 解决struts2的数据校验会促使action与框架耦合问题
- Struts2 数据校验
- 坠落凡间的struts2(4)---数据的校验
- java web从零单排第十二期《struts2》数据校验显示出错信息
- 使用struts2表单数据校验功能
- struts2:数据校验,通过Action中的validate()方法实现校验(续:多业务方法时的不同验证处理)
- struts2数据校验
- java_struts2手工编写代码实现对Action中的输入数据校验
- struts2:数据校验,通过Action中的validate()方法实现校验,图解
- struts2中的数据校验文件配置
- Struts2的简单数据校验
- Struts2慢慢学之六----简单的数据校验
- struts2数据校验
- struts2简单的数据校验
- struts2数据校验3
- Struts2的数据校验
- Struts2中的数据校验(二[验证框架校验]) .
- Struts2的数据校验
- struts2:数据校验,通过XWork校验框架实现(validation.xml)