`
arantam
  • 浏览: 40963 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Strust2.1.6 类型转换异常处理(type conversion, exception handle)

阅读更多

最近遇到一个问题,例如表单中有个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版本?新版本是否有修正?

 

困惑并苦恼中...

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics