我目前正在处理 Struts 中的错误(404、500),因此任何遇到错误的用户都会看到一个包含所有详细信息的方便的错误页面。我还想在该错误页面中实现 sendmail
功能,以便他们可以立即将错误消息发送给开发团队。
sendmail
功能已经完成。我只需要找到一种方法在 JSP 页面上打印异常详细信息。
这是我所拥有的:
web.xml
:
<error-page>
<error-code>500</error-code>
<location>/jsp/common/error500.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/jsp/common/error404.jsp</location>
</error-page>
JSP:
标题是:
<%@ page isErrorPage="true" import="java.io.*" contentType="text/plain"%>
尝试了以下方法:
1.
<div class="container" align="center">
ERROR 404
<html:errors/>
</div>
2.
<div class="container" align="center">
ERROR 404
Message:
<%= exception.getMessage()%>
StackTrace:
<%
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
exception.printStackTrace(printWriter);
out.println(stringWriter);
printWriter.close();
stringWriter.close();
%>
</div>
如您所见,重定向工作得很好。我只需要找到如何在 JSP 中打印堆栈跟踪。
最佳答案
正常的 Struts 1 异常处理使用声明式处理。
除非您提供自己的 key ,否则异常将存储在 Globals.EXCEPTION_KEY
下。
S1 异常处理详见 Exception Handler指南的一部分。
如果绕过正常的异常处理机制,我不确定异常是否会存储在作用域中;你可以检查一下它是否在那里。然而,404 是一个与异常不同的问题。这是一个缺失的映射,而不是异常(exception)。
如果您使用 Struts 2,这是一个不同但相似的过程。提出问题时包含 Struts 版本非常重要 - Struts 1 和 2、S1.2 和 S1.3 之间的情况发生了很大变化。
(如果你使用的是 S1.2 之前的版本,嘘声。)
关于java - 如何构建带有异常详细信息和 sendmail 按钮的 Struts 自定义错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161474/