我使用spring SimpleMappingExceptionResolver在Spring应用程序中创建了异常处理。一切正常。现在我需要以某种方式在jsp页面中打印捕获的异常。像消息和堆栈跟踪的东西。在我的jsp中,我在“exception”属性中找到了异常对象。我需要做的就是这样:
${exception.printStackTrace()}
但我不知道怎么做。有什么方法可以做到这一点吗?: - )
感谢您的任何建议,
圣马特奥
答案 0 :(得分:18)
我能想到的最简单的解决方案是利用Throwable.getStackTrace()
方法循环堆栈跟踪元素:
<c:forEach items="${exception.stackTrace}" var="element">
<c:out value="${element}" />
</c:forEach>
当然,您需要添加一些格式。
答案 1 :(得分:4)
过去只能在页面中执行此操作(仅限dev / local环境),只想在textarea或预格式化的块中显示它。 skaffman的输出打印出每个strack trace元素,但不打印消息和异常类。
如果你想按照printStackTrace()预先格式化,可以考虑使用Spring EL和commons-lang3。
<spring:eval expression="T(org.apache.commons.lang3.exception.ExceptionUtils).getStackTrace(exception)"/>