2013-08-24 2 views
0

В моем весеннем контексте mvc у меня есть следующие сопоставления (есть гораздо больше, но это даст общую идею). <mvc:view-controller path="/echo" view-name="echo"/>Spring mvc: приоритет настройки просмотра и компонентного сканирования

<context:component-scan base-package="com.myapp.controllers"/>

Проблема Я бегу в том, что у меня есть аннотированный контроллер с @RequestMapping(value = "/e{number}". В том же контроллере с отображением запроса я перенаправляю дампы пользователя к «home», если @PathVariable не является целым числом.

Однако я не хочу, чтобы их отправляли на дом, если они соответствуют пути/эхо. Я попытался установить <property name="order" value="0" /> на разрешение просмотра, однако, без заказа в контексте, который все еще имеет приоритет.

Как настроить приоритет на сканирование компонентов или принудительно сопоставить view-resolver перед аннотированными контроллерами.

+1

Наличие предстающего перед контроллерами звука кажется ужасной (если это возможно), особенно потому, что UrlBasedViewResolver (или что-то) и подклассы бросают исключения, если они не находят соответствия, а не проходят через цепь. Если вы хотите, чтобы контроллер включался, когда переменная пути является целым числом, вы должны использовать параметр сопоставления шаблонов для RequestMapping, что-то вроде '/ e {number: \ d +}' должно направлять вас в правильном направлении для поиска Google , –

+0

Я попробовал '@RequestMapping (value ="/e {number: \\ d +} "и' @RequestMapping (value = "/ e {^ \\ +? \\ d + \ $}" ', но не работал. я буду пытаться и посмотреть, что я могу найти. – zmanc

+0

Я попробовал '@RequestMapping (value ="/{^ \\ e +? \\ d + \ $} "', и я получаю ошибку 400 с сообщением 'Запрос, отправленный клиент был синтаксически неправильным. ' – zmanc

ответ

1

Наличие предстающего перед контроллерами звукового сигнала выглядит как ужасная идея (если это возможно), особенно потому, что UrlBasedViewResolver (или что-то) и подклассы бросают исключения, если они не находят совпадения, а не передают через цепочку. Если вы хотите, чтобы контроллер включался, когда переменная пути является целым числом, вы должны использовать опцию сопоставления шаблонов для RequestMapping, что-то вроде /e{number:\d+} должно направлять вас в правильном направлении для поиска Google.

Смежные вопросы