我使用spring SimpleMappingExceptionResolver在我的Spring应用程序中创建了异常处理。一切正常。现在我需要以某种方式在jsp页面中打印捕获到的异常。像消息和堆栈跟踪。在我的jsp中,我在“exception”属性中找到了异常对象。我需要做的就是这样的:错误页面 - 如何在JSP中打印堆栈跟踪
${exception.printStackTrace()}
但我不知道如何。有什么办法如何做到这一点?:-)
感谢您的任何建议,
刁
我使用spring SimpleMappingExceptionResolver在我的Spring应用程序中创建了异常处理。一切正常。现在我需要以某种方式在jsp页面中打印捕获到的异常。像消息和堆栈跟踪。在我的jsp中,我在“exception”属性中找到了异常对象。我需要做的就是这样的:错误页面 - 如何在JSP中打印堆栈跟踪
${exception.printStackTrace()}
但我不知道如何。有什么办法如何做到这一点?:-)
感谢您的任何建议,
刁
我能想到的最简单的办法是遍历所有的堆栈跟踪元素,以优势Throwable.getStackTrace()
方法:
<c:forEach items="${exception.stackTrace}" var="element">
<c:out value="${element}" />
</c:forEach>
当然,您需要添加一些格式。
必须在过去的页面中执行此操作(仅用于开发/本地环境),并且只想将其显示在textarea或预格式化的块中。 skaffman的输出打印出每个痕迹元素,但不包含消息和异常类。
如果您希望按照printStackTrace()预先格式化,请考虑使用Spring EL和commons-lang3。
<spring:eval expression="T(org.apache.commons.lang3.exception.ExceptionUtils).getStackTrace(exception)"/>
您无法找到方法名称的API? http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Throwable.html#printStackTrace()。问题应该总是列出你得到的错误。即使是这样,该行也不会输出任何内容 – 2010-12-14 18:00:23
@Juan我相信@mateo意味着他无法找到将printStackTrace()插入到页面内容中的方法,如果没有内联代码(eew)来设置它是很难复制的在StringWriter周围打印PrintWriter。 – 2011-03-30 17:52:41