11、输入校验流程

  1. 类型转换器对请求参数执行类型转换,并把转换后的值赋给action中的属性;
  2. 如果在执行类型转换的过程中出现异常,系统会将异常信息保存到ActionContext,conversionError拦截常信息添加到fieldErrors里。不管类型转换是否出现异常,都会进入第3步;

  3. 系统通过反射技术先调用action中的validateXxx()方法,Xxx为方法名;
  4. 再调用action中的validate()方法;
  5. 经过上面4步,如果系统中的fieldErrors存在错误信息(即存放错误信息的集合的size大于0),系统自动将请求转发至名称为input的视图。如果系统中的fieldErrors没有任何错误信息,系统将执行action中的处理方法。

    注:如果类型转换没有问题,但是仍是转到input视图,则判断类型转换是否出现异常;

    如:生日:<input type="text" name="birthday" id="birthday"/><br />

    对应的:

    private Date birthday;

    public Date getBirthday() {
       return birthday;
    }
    public void setBirthday(Date birthday) {
       this.birthday = birthday;
    }

    没有任何校验方法,仍跳转到input页面:





posted @ 2014-04-06 19:24  zmpandzmp  阅读(124)  评论(0编辑  收藏  举报