struts2类型转换、输入校验总结

下面讲解类型转换和输入校验的关系:对于struts2来说。总是先执行类型转换,然后再执行输入校验。在执行过程中,比如像这里的输入校验的例子不会报出age required的错误,而是会报出不在范围内的错误,为什么呢,流程是这样的,页面在age输入框里不输入任何信息点击提交,然后到达Action,试图想要把空转化为数字飞,发现转化不成功,然后又试图去寻找setAge( age)这样的方法发现找不到,然后就不调用age的set方法了,然后在Action里的age属性就会取整型的默认值0,然后到达输入校验发现age属性不是空或null然后就不会报age required这样的错误了,而是会报不在要求的年龄范围内。(注:这里不会调用setAge(int age)这样的方法,而是去寻找参数为String的方法)。



现在我们了解到的校验方法有两种,一种是我们自己编写代码校验(validate方法),另一种是使用校验框架,当这两种都使用的时候会出现什么什么情况呢?结果是都会执行,校验框架先执行,自己编码校验后执行。


类型转换、输入校验等执行流程:
1、首先执行类型转换
2、执行对应的校验框架。
3、执行特定方法对应的validate验证(例如test方法对应validateTest校验方法)
4、执行validate()方法


如果在以上所有过程中,发现了任何错误,都不会再去执行execute()方法或指定的特定方法(test),页面转向了struts.xml中input这个result所对应的页面。

你可能感兴趣的:(类型转换,struts,输入校验)