最近遇到一个问题,例如表单中有个age字段,为int类型,但是该属性没填或者填的是字符串.
当表单提交的时候,struts2的拦截器会对age字段进行类型转换.
我使用了验证框架的是required与int验证器对该字段进行了验证.
可以肯定的是,转换失败的话确实能够返回到view层,并且能提示自定义的转换异常信息.
但是,在myeclipse的控制台依然会打印setAge()异常,说ognl method not found, 程序没有找到setAge(String age)方法...
在网上找了几天,只找到这种解决方法:
=> 把PO类的age属性类型改为包装类,Integer.这样,当表单提交了空值或者字符串的时候,就不会导致说类型不正确而引起的method not found 异常.
到apache上去看文档,也似乎没发现有什么解决方法...
设想一下,以下方法能否解决问题呢?
1. 在验证文件中使用正则表达式先进行验证,然后短路?
2. 目的就是不让它打印出异常信息.那能否用log4j记录就算了? 呵呵,掩耳盗铃.
3. 升级Struts2到2.1.8.1版本?新版本是否有修正?
困惑并苦恼中...