Spring MVC ControllerClassNameHandlerMapping - Beispiel

Spring MVC ControllerClassNameHandlerMapping-Beispiel

In Spring MVC verwendenControllerClassNameHandlerMappingdie Konvention, um die angeforderte URL dem Controller zuzuordnen (Konvention über Konfiguration). Es übernimmt den Klassennamen, entfernt das Suffix "Controller", falls vorhanden, und gibt den verbleibenden Text in Kleinbuchstaben und mit einem vorangestellten "/" zurück.

In den folgenden Beispielen wird die Verwendung dieserControllerClassNameHandlerMapping-Klasse demonstriert.

1. Vorher und nachher

Standardmäßig verwendet Spring MVC die Handlerzuordnung vonBeanNameUrlHandlerMapping.



  

  

Um dieControllerClassNameHandlerMapping zu aktivieren, deklarieren Sie sie in der Bean-Konfigurationsdatei und jetztthe controller’s bean’s name is no longer required.



  

  

  

Spring MVC ordnet die angeforderte URL nun gemäß den folgenden Konventionen zu:

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

  2. /welcomeHome.htm -> WelcomeController.

  3. /helloguest.htm -> HelloGuestController.

  4. /helloguest12345.htm -> HelloGuestController.

  5. /helloGuest.htm,/helloguest * konnte nicht zugeordnet werden. Der Fall "g" stimmt nicht überein.

2. Groß- und Kleinschreibung beachten

Um das oben angegebene Problem mit der Groß- und Kleinschreibung zu lösen, deklarieren Sie die Eigenschaft "caseSensitive" und setzen Sie sie auf "true".



  
       
  

  

  

Spring MVC ordnet die angeforderte URL nun nach den folgenden Konventionen zu:

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

  2. /helloguest.htm, Zuordnung von "/ helloGuest *" fehlgeschlagen, Groß- / Kleinschreibung "G" stimmt nicht überein.

3. pathPrefix

Darüber hinaus können Sie ein Präfix angeben, um die angeforderte URL zuzuordnen, die als "pathPrefix" -Eigenschaft deklariert ist.



  
     
     
  

  

  

Spring MVC ordnet die angeforderte URL nun nach den folgenden Konventionen zu:

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

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

  3. /welcome.htm, fehlgeschlagen.

  4. /helloGuest.htm, fehlgeschlagen.

Quellcode herunterladen