Spring MVC ControllerClassNameHandlerMapping пример
В Spring MVCControllerClassNameHandlerMapping использует соглашение для сопоставления запрошенного URL-адреса с контроллером (соглашение важнее конфигурации). Он принимает имя класса, удаляет суффикс «Controller», если он существует, и возвращает оставшийся текст, в нижнем регистре и с начальным «/».
См. Следующие несколько примеров, чтобы продемонстрировать использование этого классаControllerClassNameHandlerMapping
.
1. До и после
По умолчанию Spring MVC использует отображение обработчикаBeanNameUrlHandlerMapping
.
Чтобы включитьControllerClassNameHandlerMapping, объявил его в файле конфигурации bean-компонента, а теперьthe controller’s bean’s name is no longer required.
Теперь Spring MVC отображает запрошенный URL с помощью следующих соглашений:
WelcomeController -> /welcome* HelloGuestController -> /helloguest*
-
/welcome.htm -> WelcomeController.
-
/welcomeHome.htm -> WelcomeController.
-
/helloguest.htm -> HelloGuestController.
-
/helloguest12345.htm -> HelloGuestController.
-
/helloGuest.htm, не удалось сопоставить/helloguest *, регистр «g» не соответствует.
2. Чувствительный к регистру
Чтобы решить указанную выше проблему с учетом регистра, объявите свойство «caseSensitive» и установите для него значение true.
Теперь Spring MVC отображает запрошенный URL по следующим соглашениям:
WelcomeController -> /welcome* HelloGuestController -> /helloGuest*
-
/helloGuest.htm -> HelloGuestController.
-
/helloguest.htm, не удалось отобразить «/ helloGuest *», регистр «G» не совпадает.
3. PATHPREFIX
Кроме того, вы можете указать префикс для сопоставления запрошенного URL, объявленного свойством «pathPrefix».
Теперь Spring MVC отображает запрошенный URL по следующим соглашениям:
WelcomeController -> /customer/welcome* HelloGuestController -> /customer/helloGuest*
-
/customer/welcome.htm –> WelcomeController.
-
/customer/helloGuest.htm –> HelloGuestController.
-
/welcome.htm, не удалось.
-
/helloGuest.htm, не удалось.
Скачать исходный код
Скачать -SpringMVC-ControllerClassNameHandlerMapping-Example.zip (7KB)