Spring:SimpleMappingExceptionResolver和@ExceptionHandler一起使用?

7
我喜欢SimpleMappingExceptionResolver,因为在一个地方,我可以为 Web 应用程序中的所有控制器设置异常到视图的映射(我想是这样的)。要自定义特定控制器中的某些异常,我想使用@ExceptionHandler,但它们不能一起使用 - 所有异常都由SimpleMappingExceptionResolver处理。如何使它们一起工作?
@Controller
public class SomeController {
    ...

    @ExceptionHandler(SomeException.class)
    public ModelAndView handleException(Exception ex) {
         // ...
    }   

}

SimpleMappingExceptionResolver:

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="defaultErrorView" value="error"/>
    <property name="exceptionMappings">
        ...
    </property>
</bean> 
1个回答

12

简短回答:p:order

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver" p:order="1" />
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:order="2" p:defaultErrorView="uncaughtException"/>

完整故事: springsource论坛.


第二个bean标签缺少关闭/>。 - Joseph Lust
如果您正在使用Spring MVC的新基础架构(RequestMappingHandlerMappingRequestMappingHandlerAdapter),则必须使用ExceptionHandlerExceptionResolver而不是AnnotationMethodHandlerExceptionResolver - kpentchev
现在我们也可以使用HandlerExceptionResolverComposite了- http://doanduyhai.wordpress.com/2012/05/06/spring-mvc-part-v-exception-handling/ - chrismarx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接