2

我希望我的应用程序在抛出异常时显示自定义错误页面。包含页面的响应应该具有正确的 HTTP 状态并包含异常消息以及可能来自异常对象的其他数据。

我已经尝试了两种方法,但它们都不起作用:

1) 从子类返回 ModelAndView AbstractHandlerExceptionResolver- 我可以生成任何我想要的错误页面,但它会以 200 OK HTTP 状态提供服务。

2) 在 web.xml 中指定错误页面 - 我找不到访问异常的方法。

好的,解决了。事实证明这很容易。我用过HttpServletResponse.setStatus。请注意,使用sendError无法正常工作。

4

2 回答 2

3

你可以配置SimpleMappingExceptionResolver

<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="defaultStatusCode" value="500" />
        <property name="defaultErrorView" value="error/500" />
        <property name="exceptionMappings">
            <props>
                <prop key="java.lang.Exception">error/500</prop>
                <prop key="SomeOtherException">error/custom</prop>
            </props>
        </property>
        <property name="statusCodes">
            <props>
                <prop key="error/500">500</prop>
                <prop key="error/custom">404</prop>
            </props>
        </property>
        <property name="order" value="0" />
    </bean>

并在 web.xml 中配置您的 404 错误页面(如果未找到映射,spring dispatcher servlet 返回状态代码 404)

在您的jsp中,您可以按如下方式访问异常抛出

${exception}
于 2013-04-30T11:13:49.757 回答
0

任何一个

于 2013-04-30T10:24:47.020 回答