使用struts2时,如果dao部分产生错误,错误堆栈不是在Eclipse的控制台窗口打印,而是在struts2自定义的错误页面显示。(struts.devMode=true)
如何设置让它在Eclipse的控制台窗口打印,这样可以快速定位。
以上这个不是主要问题,更严重的是在调用了自己写的拦截器后,
dao中的错误会被包装,然后根本不打印错误信息
只会在拦截器的 return invocation.invoke(); 语句报空指针异常,这样根本就无法定位错误的位置
怎样设置能让它打印出所有的原始错误堆栈呢
[code="java"]
true
[/code]
struts.devMode=false
并且在Interceptor Stack的配置中,去掉 ExceptionInterceptor。
(不建议这样做。)
ExceptionInterceptor默认位于defaultStack的顶部,它能够捕捉到后续所有的异常,然后根据你的Sturts的配置文件,找到与 该类型的Exception匹配的result,然后转向到这个result。
是一项很好的功能,所以不建议去掉!
参考官方文档:
[url]http://struts.apache.org/2.1.8.1/docs/exception-interceptor.html[/url]
自定义拦截器堆栈(如下代码)。这样定义自己的堆栈后,在action中使用自己的拦截器堆栈myStack
[code="xml"]
dojo..*
input,back,cancel,browse
input,back,cancel,browse
解释下:上面是将默认拦截器堆栈defaultStack里的 拦截器去掉。
这样所有的异常在Eclipse控制台显示。