Spring MVC - Esempio di mappatura del gestore del nome della classe del controller

L'esempio seguente mostra come utilizzare il mapping del gestore del nome della classe controller utilizzando il framework Spring Web MVC. IlControllerClassNameHandlerMappingclass è la classe di mappatura del gestore basata sulla convenzione, che mappa le richieste URL al nome dei controller menzionati nella configurazione. Questa classe prende i nomi dei controller e li converte in lettere minuscole con una "/" iniziale.

Ad esempio, HelloController esegue il mapping all'URL "/ hello *".

<beans>
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name = "prefix" value = "/WEB-INF/jsp/"/>
      <property name = "suffix" value = ".jsp"/>
   </bean>

   <bean class = "org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
 
   <bean class = "com.tutorialspoint.HelloController" />

   <bean class = "com.tutorialspoint.WelcomeController"/>   
</beans>

Ad esempio, utilizzando la configurazione precedente, se URI

  • /helloWorld.htm o / hello {any letter} .htm è richiesto, DispatcherServlet inoltrerà la richiesta al HelloController.

  • /welcome.htm è richiesto, DispatcherServlet inoltrerà la richiesta a WelcomeController.

  • /Welcome.htm è richiesto dove W è maiuscolo, DispatcherServlet non troverà alcun controller e il server genererà un errore di stato 404.

Per iniziare, disponiamo di un IDE Eclipse funzionante e seguiamo i passaggi successivi per sviluppare un'applicazione Web basata su modulo dinamico utilizzando Spring Web Framework.

Passo Descrizione
1 Crea un progetto con un nome TestWeb sotto un pacchetto com.tutorialspoint come spiegato nel capitolo Spring MVC - Hello World.
2 Crea classi Java HelloController e WelcomeController nel pacchetto com.tutorialspoint.
3 Crea file di visualizzazione hello.jsp, welcome.jsp nella sottocartella jsp.
4 Il passaggio finale è creare il contenuto dei file sorgente e di configurazione ed esportare l'applicazione come spiegato di seguito.

HelloController.java

package com.tutorialspoint;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class HelloController extends AbstractController{
  
   @Override
   protected ModelAndView handleRequestInternal(HttpServletRequest request,
      HttpServletResponse response) throws Exception {
      ModelAndView model = new ModelAndView("hello");
      model.addObject("message", "Hello World!");
      return model;
   }
}

WelcomeController.java

package com.tutorialspoint;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class WelcomeController extends AbstractController{
  
   @Override
   protected ModelAndView handleRequestInternal(HttpServletRequest request,
      HttpServletResponse response) throws Exception {
      ModelAndView model = new ModelAndView("welcome");
      model.addObject("message", "Welcome!");
      return model;
   }
}

TestWeb-servlet.xml

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:context = "http://www.springframework.org/schema/context"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name = "prefix" value = "/WEB-INF/jsp/"/>
      <property name = "suffix" value = ".jsp"/>
   </bean>

   <bean class = "org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
 
   <bean class = "com.tutorialspoint.HelloController" />

   <bean class = "com.tutorialspoint.WelcomeController"/>  
</beans>

hello.jsp

<%@ page contentType="text/html; charset = UTF-8" %>
<html>
   <head>
      <title>Hello World</title>
   </head>
   <body>
      <h2>${message}</h2>
   </body>
</html>

welcome.jsp

<%@ page contentType = "text/html; charset=UTF-8" %>
<html>
   <head>
      <title>Welcome</title>
   </head>
   <body>
      <h2>${message}</h2>
   </body>
</html>

Una volta terminata la creazione dei file sorgente e di configurazione, esporta la tua applicazione. Fare clic con il tasto destro sull'applicazione, utilizzare il fileExport → WAR File opzione e salva il file TestWeb.war file nella cartella webapps di Tomcat.

Ora avvia il tuo server Tomcat e assicurati di essere in grado di accedere ad altre pagine web dalla cartella webapps utilizzando un browser standard. Prova un URL -http://localhost:8080/TestWeb/helloWorld.htm e vedremo la seguente schermata, se tutto va bene con l'applicazione Web Spring.

Prova un URL http://localhost:8080/TestWeb/hello.htm e vedremo la seguente schermata, se tutto va bene con l'applicazione Web Spring.

Prova un URL http://localhost:8080/TestWeb/welcome.htm e vedremo la seguente schermata, se tutto va bene con l'applicazione Web Spring.

Prova un URL http://localhost:8080/TestWeb/Welcome.htm e vedremo la seguente schermata, se tutto va bene con l'applicazione Web Spring.