Struts2转换警告

时间:2012-01-27 10:27:28

标签: validation error-handling struts2 type-conversion ognl

我正在Struts2.2.3上开发基于模型的Web应用程序。我的意思是模型,数据库表表示为java类(你知道)。模型具有类型的属性,如Integer,Date等。当我在页面上呈现这些值时,并且当用户将其他值设置为原始类型时,它总是给我例外。在填充之前它没有达到验证功能。

它在页面上显示以下消息:

Invalid field value for field "estimates[1].count".

还在控制台上显示以下异常

 WARN OgnlValueStack:60 - Error setting expression 'estimates[1].count' with value '[Ljava.lang.String;@a61ffd'

我之前看过几个人遇到过这个问题: http://osdir.com/ml/user-struts.apache.org/2009-12/msg00037.html

我从我的默认堆栈中删除了我的ConversionError拦截器。我的devMode已关闭。但是,我仍然遇到这些错误。

更新

我发现MyAction-validation.xml可以捕获错误异常,并且可以自定义错误消息。但OGNL警告仍然存在。

因此问题是:

有没有办法不在日志上显示此警告?

2 个答案:

答案 0 :(得分:1)

问题是框架正在尝试将表单数据转换为不合适的Java类型(通常为String)。 因此,如果您的bean或操作具有不同的类型,则会引发转换错误。

我通过创建自己的个人转换器并在xwork-conversion.properties文件中注册它来解决这个问题。

你应该检查一下: http://struts.apache.org/2.2.3/docs/type-conversion.html

答案 1 :(得分:0)

如果您遇到此问题,则无法在控制台或日志上显示此WARN:

请阅读:

http://www.mail-archive.com/user@struts.apache.org/msg90542.html