Struts 2设置了未知的字段参数

时间:2011-12-15 12:49:11

标签: error-handling struts2 ognl

我的struts 2(2.3.1)应用程序在调试模式下为url http://localhost/app/check.action?13239 raises such kind of exceptions

2011-12-15 14:45:06,455 DEBUG [CommonsLogger.java:68] : Setting static parameters {}
2011-12-15 14:45:06,456 DEBUG [CommonsLogger.java:68] : Setting params NONE
2011-12-15 14:45:06,456 DEBUG [CommonsLogger.java:68] : Setting params 13239 => [  ]
2011-12-15 14:45:06,461 WARN  [CommonsLogger.java:60] : Error setting expression '13239' with value '[Ljava.lang.String;@33b4450e'
ognl.InappropriateExpressionException: Inappropriate OGNL expression: 13239
        at ognl.SimpleNode.setValueBody(SimpleNode.java:312)
        at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
        at ognl.SimpleNode.setValue(SimpleNode.java:301)

我希望根据文件默默地忽略它们。解决此问题的正确方法是什么?

顺便说一下struts正在为值13239寻找一个setter字段但是我猜它不适合由一个数字启动的属性。

1 个答案:

答案 0 :(得分:1)

这或多或少是您个人品味的问题。有时我们想知道提交的参数在动作上没有匹配的getter / setter,并且它是开发我们的应用程序的常见用例我们忘记了一个动作的getter / setter,我们想知道任何可能的错误情况。

一种可能的方法是将日志记录级别设置为不同于dev到production。在Struts2邮件列表上对此进行了长时间的讨论,这里是相同的链接

OgnlValueStack Error setting expression warnings after upgrade from struts 2 to struts 2.1.7