Struts2的方法验证

struts2可以对anction中所有方法进行校验,也可以对指定方法进行校验,现在我们来说说采用手工编码代码方式来进行校验

1 编写action,重写validate方法,validate会校验所有的方法,当校验出错,把错误信息放到filedError中。

  

public class PersonAction extends ActionSupport {

 

private String userName;
public String getUserName() {
 return userName;
}

 

public void setUserName(String userName) {
 this.userName = userName;
}


@Override //校验所有方法
 public void validate() {
     System.out.println("validate");
     if(userName==null||"".equals(userName.trim())){
      this.addFieldError("userName" , "用户名不能为空");
     }
 
 }

//校验update方法

public void validateUpdate(){
 System.out.println("validateUpdate");
   if(userName==null||"".equals(userName.trim())){
           this.addFieldError("userName" , "用户名不能为空");
      }
 
}
 
public void  update(){
 System.out.println("update");
  
 ActionContext.getContext().put("message","update");
}

 

@Override
public String execute() throws Exception {
  System.out.println("execute");
  return  this.SUCCESS;
}

}
 

2 当在页面输入用户名,会经过先经过validate方法校验,校验通过才会进入execute方法,记住校验失败把错误信息放入到addFieldError方法中,才不会继续执行下去,validate会校验所有方法。

  

3 如果要校验部分方法,则校验方法名称就不是validate,而是validateXxx,Xxx是actiion中的方法名.如果两个都有则是先校验部分方法,再校验所有方法。校验失败,struts2就会将请求转发到名为input的result中去。<s:fielderror/>会输出存入的校验失败信息

 

输入校验流程

1 类型转换器对请求参数执行类型转换,并把转换后的值复制给action属性

2 如果在执行类型转换过程中出现异常,系统将异常信息保存到ActionContext中,拦截器将异常信息添加到filedErrors里,不管类型转换是否出现异常,都进入步骤3

3 调用validateXxx方法,部分方法校验

4 调用 validate方法,全部方法校验

5 经过以上,如果filedErrors存在错误信息,转发input的result,如果没有就执行action中的方法

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值