欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-18 13:37:16
...
下面讲解类型转换和输入校验的关系:对于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所对应的页面。