Spring MVC - Przykład mapowania obsługi nazw klas kontrolerów

Poniższy przykład pokazuje, jak używać mapowania obsługi nazw klas kontrolerów przy użyciu struktury Spring Web MVC. PlikControllerClassNameHandlerMappingclass to oparta na konwencji klasa odwzorowania programu obsługi, która odwzorowuje żądania adresu URL na nazwy kontrolerów wymienionych w konfiguracji. Ta klasa przyjmuje nazwy kontrolerów i konwertuje je na małe litery z początkowym „/”.

Na przykład - HelloController mapuje na adres 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>

Na przykład, używając powyższej konfiguracji, jeśli URI

  • /helloWorld.htm lub / hello {dowolna litera} .htm jest wymagane, serwlet DispatcherServlet przekaże żądanie do HelloController.

  • /welcome.htm, DispatcherServlet przekaże żądanie do WelcomeController.

  • /Welcome.htm jest żądane, gdy W jest zapisane wielkimi literami, DispatcherServlet nie znajdzie żadnego kontrolera, a serwer zgłosi błąd statusu 404.

Na początek przygotujmy działające środowisko Eclipse IDE i wykonaj kolejne kroki, aby opracować aplikację internetową opartą na formularzu dynamicznym przy użyciu Spring Web Framework.

Krok Opis
1 Utwórz projekt o nazwie TestWeb w pakiecie com.tutorialspoint, jak wyjaśniono w rozdziale Spring MVC - Hello World.
2 Utwórz klasy Java HelloController i WelcomeController w pakiecie com.tutorialspoint.
3 Utwórz pliki widoku hello.jsp, welcome.jsp w podfolderze jsp.
4 Ostatnim krokiem jest utworzenie zawartości plików źródłowych i konfiguracyjnych oraz wyeksportowanie aplikacji, jak wyjaśniono poniżej.

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>

Gdy skończysz tworzyć pliki źródłowe i konfiguracyjne, wyeksportuj aplikację. Kliknij aplikację prawym przyciskiem myszy, użyj plikuExport → WAR File opcję i zapisz plik TestWeb.war plik w folderze webapps Tomcata.

Teraz uruchom serwer Tomcat i upewnij się, że możesz uzyskać dostęp do innych stron internetowych z folderu webapps przy użyciu standardowej przeglądarki. Wypróbuj adres URL -http://localhost:8080/TestWeb/helloWorld.htm i zobaczymy następujący ekran, jeśli wszystko jest w porządku z aplikacją internetową Spring.

Wypróbuj adres URL http://localhost:8080/TestWeb/hello.htm i zobaczymy następujący ekran, jeśli wszystko jest w porządku z aplikacją internetową Spring.

Wypróbuj adres URL http://localhost:8080/TestWeb/welcome.htm i zobaczymy następujący ekran, jeśli wszystko jest w porządku z aplikacją internetową Spring.

Wypróbuj adres URL http://localhost:8080/TestWeb/Welcome.htm i zobaczymy następujący ekran, jeśli wszystko jest w porządku z aplikacją internetową Spring.