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

Struts 数据校验

2013-07-24 14:14 197 查看
1 传统的校验

  同过web脚本语言进行校验,JQUERY 等

2 Struts2 提供了数据校验

  Struts 内置了类型转换器,在Struts 中提供了两个相关的Validateable和ValidationAware接口,其中ValidationAware接口中只有一个validate方法
  Struts 调用execute之前会调用Validateable接口的validate方法,因此,可以将校验的代码写在该方法中,但validate方法没有返回值,这就意味着无法通过validate方法的返回值来通知Struts2 校验是否通过
  因为不能通过返回值的方法,所以需要另外一个校验感知接口ValidationAware.该接口提供一系列的addXXX方法,可以将在校验过程中发生的错误信息添加到系统中。
  addFieldError : 该方法是用来向系统添加每一个字段的校验错误,如果某个字段校验成功,则该字段没有错误信息
  
  例如:
        /**
* 进行验证validate只是做一些简单的验证,而不是业务上的验证,是否符合格式等
*/
@Override
public void validate() {
if(null == this.getUsername() || "".equals(this.getUsername().trim()))
{
this.addFieldError("username", "username required");

}
if(null == this.getPassword() || "".equals(this.getPassword().trim()))
{
this.addFieldError("password", "password required");
}
}

3 Struts2 的输入校验流程(重点)
   把流程弄明白了,其他就不在话,所以这个很重要的。其他的什么邮箱验证等都没问题的
     (1) 在客户端提交数据后,Struts2会进行类型转换
     (2) 如果类型转换成功,会继续调用validateXXX方法。如果类型转换失败,则会将类型转换错误保存在ActionContext,并转换成错误的字符串。
    (3) 在调用validateXXX方法过后,继续调用validate()方法
    (4) 当2,3都调用完成过后,Struts2会检查是否有字符串字段错误,如果没有字段错误,会继续调用Action方法;如果有错误,会返回INPUT结果,并转入INPUT结果所指的Web资源。
    (5) 当调用Action处理方法过后,会返回一个结果,然后也会转入相应的Web资源。
     
    输入校验流程图:  

  



   

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: