Пример Spring MVC ControllerClassNameHandlerMapping

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*
  1. /welcome.htm -> WelcomeController.

  2. /welcomeHome.htm -> WelcomeController.

  3. /helloguest.htm -> HelloGuestController.

  4. /helloguest12345.htm -> HelloGuestController.

  5. /helloGuest.htm, не удалось сопоставить/helloguest *, регистр «g» не соответствует.

2. Чувствительный к регистру

Чтобы решить указанную выше проблему с учетом регистра, объявите свойство «caseSensitive» и установите для него значение true.



  
       
  

  

  

Теперь Spring MVC отображает запрошенный URL по следующим соглашениям:

WelcomeController -> /welcome*
HelloGuestController -> /helloGuest*
  1. /helloGuest.htm -> HelloGuestController.

  2. /helloguest.htm, не удалось отобразить «/ helloGuest *», регистр «G» не совпадает.

3. PATHPREFIX

Кроме того, вы можете указать префикс для сопоставления запрошенного URL, объявленного свойством «pathPrefix».



  
     
     
  

  

  

Теперь Spring MVC отображает запрошенный URL по следующим соглашениям:

WelcomeController -> /customer/welcome*
HelloGuestController -> /customer/helloGuest*
  1. /customer/welcome.htm –> WelcomeController.

  2. /customer/helloGuest.htm –> HelloGuestController.

  3. /welcome.htm, не удалось.

  4. /helloGuest.htm, не удалось.

Скачать исходный код