无法捕获错误页面上的异常

发布于 2024-11-05 10:29:32 字数 1515 浏览 0 评论 0原文

我正在尝试打印 jsp 页面上的异常堆栈跟踪。但是,隐式异常对象似乎没有被填充。

<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions"
 xmlns:spring="http://www.springframework.org/tags"
 xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:output omit-xml-declaration="yes"/>
<jsp:directive.page isErrorPage="true" />
<spring:message var="title" code="error_uncaughtexception_title"/>

    <h2>${fn:escapeXml(title)}</h2>

    <p>
        <spring:message code="error_uncaughtexception_problemdescription"/>
    </p>
    <c:if test="${not empty exception}">
        <p>
            <h4>
                <spring:message code="exception_details"/>
            </h4>
            <spring:message var="message" code="exception_message"/>

                <c:out value="${exception.localizedMessage}"/>

            <spring:message var="stacktrace" code="exception_stacktrace"/>

                <c:forEach items="${exception.stackTrace}" var="trace">
                    <c:out value="${trace}"/>
                    <br/>
                </c:forEach>

        </p>
</c:if>

该页面在 web.xml 中正确配置:

 <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/uncaughtException</location>
    </error-page>

对我缺少的内容有什么猜测吗?

I'm trying to print out the an exception stack trace on a jsp page. However, the implicit exception object doesn't seem to be populated.

<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions"
 xmlns:spring="http://www.springframework.org/tags"
 xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:output omit-xml-declaration="yes"/>
<jsp:directive.page isErrorPage="true" />
<spring:message var="title" code="error_uncaughtexception_title"/>

    <h2>${fn:escapeXml(title)}</h2>

    <p>
        <spring:message code="error_uncaughtexception_problemdescription"/>
    </p>
    <c:if test="${not empty exception}">
        <p>
            <h4>
                <spring:message code="exception_details"/>
            </h4>
            <spring:message var="message" code="exception_message"/>

                <c:out value="${exception.localizedMessage}"/>

            <spring:message var="stacktrace" code="exception_stacktrace"/>

                <c:forEach items="${exception.stackTrace}" var="trace">
                    <c:out value="${trace}"/>
                    <br/>
                </c:forEach>

        </p>
</c:if>

The page is properly configured in web.xml:

 <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/uncaughtException</location>
    </error-page>

Any guesses as to what I'm missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑红尘 2024-11-12 10:29:32

exception 隐式对象可用作页面变量(即对于 scriptlet),但不能用作 EL 引用。

您可以使用 ${pageContext.errorData} 表达式访问异常状态(请参阅 docs),它是 javax.servlet.jsp.ErrorData 类型的对象(请参阅 javadoc)。

有关示例,请参阅 J2EE 教程

The exception implicit object is available as a page variable (i.e. for scriptlets) but is not available as an EL reference.

You can access the exception state using the ${pageContext.errorData} expression (see docs), which is an object of type javax.servlet.jsp.ErrorData (see javadoc).

See J2EE tutorial for examples.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文