java - 如何构建带有异常详细信息和 sendmail 按钮的 Struts 自定义错误页面

标签 java error-handling struts

我目前正在处理 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/

相关文章:

java - 如何让 Spring 使用多个上下文 Autowiring 集成测试类?

java - 使用 JScrollPane 的 JApplet 滚动条显示但不滚动屏幕外的 Graphics2D 内容

c# - 调试:Microsoft JScript 运行时错误

java - 与http客户端或httpurlconnection通信后如何保留 session ?

java - 在 Struts 1.x JSP 中填充多个表单

java - java中数组的部分复制

java - 使用 HikariDataSource 作为数据源对象时,如何在应用程序启动时加载存储过程?

python - 如何有意使具有错误打印输出的Python代码崩溃(“IntegrationWarning”)

java - java中的异常冒泡模式

java - 读取用Struts上传的文件