当一个action对象当中既有类型转换器又有字段校验器的时候,action对象在接收到来自于客户端表单对象当中的数据后:
1:进行类型转换操作,类型转换操作是在action对象调用set方法来为action对象当中的属性值进行赋值之前进行的,如果出现类型转换失败时,struts是不会进行异常的抛出操作的因为其对异常进行了封装操作使得用户无法看到异常信息,但是会返回一个null对象,然后再调用set方法来为对应的属性进行赋值操作。
2:执行set方法,set方法无论类型转换是否成功都会进行执行
3:进行数据验证操作,当数据验证失败时会自动的返回一个input视图对象,当验证成功时会执行action当中execute方法。所以当类型转换失败时,当前的属性对象当中的值为null,此时进行数据校验时一定会失败,此时将会返回一个input视图。在类型转换失败后服务器会自动的将失败的信息添加到errorField(错误信息字段当中去)
4:action方法的执行:进行完数据校验之后会判断errorField集合对象当中是否有数据,若有则返回到input视图当中对数据进行显示操作,若没有则去执行action方法。