我正在Struts2.2.3上开发基于模型的Web应用程序。我所说的模型是,数据库表表示为java类(您知道)。并且模型具有类型为Integer,Date等的属性。当我在页面上呈现这些值时,以及当用户放置非原始类型的值时,它总是给我异常(exception)。在填充之前未达到验证功能。
它在页面上显示以下消息:
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警告仍然存在。
因此,问题是:
有什么办法不在日志上显示此警告?
最佳答案
问题在于该框架试图将表单数据转换为不足的Java类型(通常转换为字符串)。
因此,如果您的bean或操作具有不同的类型,则会引发转换错误。
我通过创建自己的个人转换器并将其注册到xwork-conversion.properties文件中来解决此问题。
您应该检查一下:
http://struts.apache.org/2.2.3/docs/type-conversion.html
关于validation - Struts2转换警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9031889/