日期:2014-05-18  浏览次数:20708 次

Struts2 输入校验问题
各位大哥大姐好,小弟小项目中遇到个问题,请各位高手指点迷津:

我用 struts2-core-2.0.8.jar 这个版本的框架开发的时候,如过我的Action内有一个 int 的 age 属性,而页面输入的age的值是一个非 整数 "aaaa" 的时候,我的struts2 会自动帮我处理错误,然后自动导到 input 配置页,显示 Invalid field value for field "age".的信息,后台的话,不会抛出 异常

然而我用 struts2-core-2.1.2.jar 的时候,他会先 抛出java.lang.NumberFormatException: For input string: "aaaa" 异常,然后再导到 input 配置页,显示Invalid field value for field "age".的信息

为什么他会抛异常呢?有没办法让他不抛异常啊?

------解决方案--------------------
1>.struts2 执行流程

从画面来的数据,先进行类型转换,在进行输入校验,在执行业务Action。

2>.struts2类型转换

类型转换会把画面上的值(String类型)自动转换成你定义的类型,如果转换错误,就会报错。

3>.去掉异常

将struts2默认拦截器中的<interceptor-ref name="conversionError"/>拦截器去掉。