Spring: SimpleMappingExceptionResolver совместно с @ExceptionHandler?

#spring #spring-mvc

#spring #spring-mvc

Вопрос:

Мне нравится SimpleMappingExceptionResolver , потому что в одном месте у меня есть все сопоставления exception-> view для всех контроллеров в веб-приложении (я полагаю, что). Для настройки какого-либо исключения в конкретном контроллере я хотел бы использовать @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:

Короткий ответ: 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.

Комментарии:

1. отсутствует закрытие /> во втором теге компонента

2. при использовании новой инфраструктуры из Spring MVC ( RequestMappingHandlerMapping и RequestMappingHandlerAdapter ) вы должны использовать ExceptionHandlerExceptionResolver вместо AnnotationMethodHandlerExceptionResolver .

3. теперь мы также можем использовать HandlerExceptionResolverComposite- doanduyhai.wordpress.com/2012/05/06 /…