我正在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警告仍然存在。
因此问题是:
有没有办法不在日志上显示此警告?
答案 0 :(得分:1)
问题是框架正在尝试将表单数据转换为不合适的Java类型(通常为String)。 因此,如果您的bean或操作具有不同的类型,则会引发转换错误。
我通过创建自己的个人转换器并在xwork-conversion.properties文件中注册它来解决这个问题。
你应该检查一下: http://struts.apache.org/2.2.3/docs/type-conversion.html
答案 1 :(得分:0)