关闭Struts2中的OGNL警告

时间:2014-08-29 14:28:23

标签: java xml struts2 warnings ognl

我正在尝试关闭以下警告消息

OgnlValueStac W com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn Error setting expression '*checkboxidentifyer*' with value '[Ljava.lang.String;@518b518b'

我已尝试将以下内容放入log4j.xml文件

<logger name="log4j.logger.org.apache.struts2" >
    <level value="ERROR" />
    <appender-ref ref="console" />
</logger>
<logger name="log4j.logger.com.opensymphony" >
  <level value="ERROR" />
  <appender-ref ref="console" />
</logger>
<logger name="ognl.OgnlException" >
  <level value="ERROR" />
     <appender-ref ref="console" />
</logger>
<logger name="com.opensymphony.xwork2.util.logging.commons.CommonsLogger" >
  <level value="ERROR" />
  <appender-ref ref="console" />
</logger>
<logger name="ognl.OgnlRuntime" >
  <level value="ERROR" />
  <appender-ref ref="console" />
</logger>

我也尝试过添加

<constant name="struts.devMode" value="false" />

到我的struts.xml文件。我还尝试将以下内容添加到interceptor-stack文件

struts.xml部分
<interceptor-ref name="defaultStack">
    <param name="excludeParams">.*?checkbox.*</param>
</interceptor-ref>

我的问题是:1)我是否错过配置? 2)如何禁用警告。

2 个答案:

答案 0 :(得分:1)

excludeParamsparams拦截器的属性,应该像这样引用

<interceptor-ref name="defaultStack">
    <param name="params.excludeParams">.*?checkbox.*</param>
</interceptor-ref>

注意,如果在操作上使用interceptor-ref标记,则它会覆盖默认的拦截器堆栈,并且仅适用于此操作配置。对于常见用法,请考虑创建自定义拦截器堆栈并使其成为任何操作配置的默认值。

您可以为拦截器和OGNL设置日志记录级别。使用log4j.properties

log4j.logger.com.opensymphony.xwork2.interceptor=ERROR
log4j.logger.com.opensymphony.xwork2.ognl=ERROR

答案 1 :(得分:0)

我终于解决了错误,而我(在上面的问题中看到了defaultStack interceptor-ref中的param,当我将param移动到interceptor-ref名称时,它删除了错误

<interceptor-stack name="new_default_stack">
  <interceptor-ref name="params">
  <param name="paramNameMaxLength">250</param>
  <param name="excludeParams">.*?checkbox.*</param>
  </interceptor-ref>
  <interceptor-ref name="timeActions"/>
  <interceptor-ref name="defaultStack">

  </interceptor-ref>
  <interceptor-ref name="userProfile"/>
  <interceptor-ref name="valueStackManipulator"/>
  <interceptor-ref name="actionHistoryRecorder"/>
  <interceptor-ref name="cachingHeadersInterceptor"/>
</interceptor-stack>

需要更改excludeParams的位置。