Можно ли перехватить все несоответствующие запросы с помощью Spring DispatcherServlet - PullRequest
2 голосов
/ 30 марта 2010

Я использую Spring MVC для проекта и использую Spring DispatcherServlet для сопоставления поступающего запроса в приложение с контроллерами, написанными в другом месте. Я ищу способ иметь обработчик по умолчанию (обработчик перехвата всех), если запрос не сопоставлен ни с одной из существующих карт представления контроллера. В данный момент это показывает исключение Resource not found, но я хочу знать, доступна ли функция перехвата всех несопоставленных запросов в Spring.

1 Ответ

2 голосов
/ 30 марта 2010

Каждая HandlerMapping стратегия в Spring MVC имеет defaultHandler свойство только для этой цели.

Это легко, если в вашей конфигурации Spring уже явно указан объект HandlerMapping (например, SimpleUrlHandlerMapping), но это менее очевидно, если вы полагаетесь на значения по умолчанию для предоставления HandlerMapping. *

Например, если вы используете аннотированные контроллеры, то вы, вероятно, используете стандартное объявление DefaultAnnotationHandlerMapping, которое Spring предоставляет автоматически. Однако вы можете предоставить свой собственный компонент для переопределения по умолчанию:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
   <property name="defaultHandler" ref="myDefaultHandler"/>
</bean>

Этот же шаблон будет работать с любым типом Handlermapping, просто подставьте имя класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...