В моем весеннем контексте 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 перед аннотированными контроллерами.
Наличие предстающего перед контроллерами звука кажется ужасной (если это возможно), особенно потому, что UrlBasedViewResolver (или что-то) и подклассы бросают исключения, если они не находят соответствия, а не проходят через цепь. Если вы хотите, чтобы контроллер включался, когда переменная пути является целым числом, вы должны использовать параметр сопоставления шаблонов для RequestMapping, что-то вроде '/ e {number: \ d +}' должно направлять вас в правильном направлении для поиска Google , –
Я попробовал '@RequestMapping (value ="/e {number: \\ d +} "и' @RequestMapping (value = "/ e {^ \\ +? \\ d + \ $}" ', но не работал. я буду пытаться и посмотреть, что я могу найти. – zmanc
Я попробовал '@RequestMapping (value ="/{^ \\ e +? \\ d + \ $} "', и я получаю ошибку 400 с сообщением 'Запрос, отправленный клиент был синтаксически неправильным. ' – zmanc