在SimpleMappingExceptionResolver中获取应用程序上下文URL

时间:2015-07-07 01:51:19

标签: java spring spring-mvc exception-handling

我使用SimpleMappingExceptionResolver重定向到URI,以防我的自定义异常。

这个问题是重定向不尊重应用程序上下文(我使用<c:url value="/" />轻松获取JSP)。 问题是如何在Spring配置XML中获取它

context.xml -

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:defaultErrorView="errorView">
    <property name="exceptionMappings">
        <props>
            <prop key=".MyCustomException">redirect:/error</prop>
        </props>
    </property>
    <property name="exceptionAttribute"><null/></property>
</bean>

1 个答案:

答案 0 :(得分:0)

实际上有更好的方法可以做到这一点。

像这样声明你的SimpleMappingExceptionResolver

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 
<property name="exceptionMappings">
    <props>
        <prop key="com.example.MyCustomException">error</prop>
    </props>
</property>
</bean>

这将配置Spring MVC在每次抛出MyCustomException时将客户端重定向到错误视图。

然后,您可以像这样配置ViewResolver

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

因此,它将寻找&#34; /WEB-INF/views/error.jsp"要渲染的页面。你不会需要网址或任何东西。春天会照顾好一切。

参考:http://www.codejava.net/frameworks/spring/how-to-handle-exceptions-in-spring-mvc