我使用 struts 2.3.1.2 构建了我的 Web 应用程序。我有以下页面/操作,我没有收到任何 OGNL 异常作为警告/通知。
- JSP 页面 - 包含 3 个文本字段名称、地址、电话
- struts.xml 文件 - devMode = true 和使用默认拦截器堆栈的相应操作条目
- 我只有两个请求参数的属性的动作类,即名称和地址
以上运行良好,我没有收到任何警告/通知异常。
现在,最近我已经升级到 struts 2.3.14.2 并且我已经开始在日志文件中收到以下警告/通知异常:
Developer Notification (set struts.devMode to false to disable this message):
Unexpected Exception caught setting 'start' on 'class com.xyz.DetailsActionSupport:
Error setting expression 'start' with value ['0', ] - Error setting expression 'start' with value ['0', ] - [unknown location] at
com.opensymphony.xwork2.ognl.OgnlValueStack.handleRuntimeException(OgnlValueStack.java:201) at
com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:178) at
com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:152) at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:329) at
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:241) at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) and more ...
通过google搜索,找到了两个答案:
- 在 struts.xml 中为 Param 拦截器添加排除参数
- 禁用struts.xml中定义的开发模式
我可以这样做,但是,不明白struts 版本发生了什么变化,所以它已经开始将异常打印为通知/警告?
下面的链接将告诉我们它如何显示警告异常: http ://struts.apache.org/release/2.3.x/docs/parameters-interceptor.html 请参阅上面链接中缺少参数的警告部分