Spring MVC - Controller Class Name Handler Mapping Example

Aşağıdaki örnek, Spring Web MVC çerçevesini kullanarak Denetleyici Sınıfı Adı İşleyici Eşlemesinin nasıl kullanılacağını gösterir.The following example shows how to use the Controller Class Name Handler Mapping using the Spring Web MVC framework. ControllerClassNameHandlerMappingsınıfı, URL isteklerini yapılandırmada belirtilen denetleyicilerin adıyla eşleştiren, kural tabanlı işleyici eşleme sınıfıdır. Bu sınıf, Controller adlarını alır ve bunları başında "/" ile küçük harfe dönüştürür.

Örneğin - HelloController "/ merhaba *" URL'si ile eşleşir.

<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>

Örneğin, yukarıdaki yapılandırmanın kullanılması, eğer URI

  • /helloWorld.htm veya / merhaba {herhangi bir mektup} .htm istenirse, DispatcherServlet isteği şu adrese iletir: HelloController.

  • /welcome.htm istenirse, DispatcherServlet isteği şu adrese iletir: WelcomeController.

  • W'nin büyük harfli olduğu durumlarda /Welcome.htm istenir, DispatcherServlet herhangi bir denetleyici bulamaz ve sunucu 404 durum hatası verir.

Başlangıç ​​olarak, çalışan bir Eclipse IDE'ye sahip olalım ve Spring Web Framework kullanarak Dinamik Form tabanlı bir Web Uygulaması geliştirmek için sonraki adımları takip edelim.

Adım Açıklama
1 Spring MVC - Hello World bölümünde açıklandığı gibi com.tutorialspoint paketinin altında TestWeb adıyla bir proje oluşturun.
2 Com.tutorialspoint paketi altında HelloController ve WelcomeController Java sınıfları oluşturun.
3 Jsp alt klasörü altında merhaba.jsp, welcome.jsp görünüm dosyaları oluşturun.
4 Son adım, kaynak ve yapılandırma dosyalarının içeriğini oluşturmak ve uygulamayı aşağıda açıklandığı gibi dışa aktarmaktır.

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>

merhaba.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>

Kaynak ve yapılandırma dosyalarını oluşturmayı tamamladığınızda, uygulamanızı dışa aktarın. Uygulamaya sağ tıklayın,Export → WAR File seçeneğini belirleyin ve kaydedin TestWeb.war Tomcat'in webapps klasöründeki dosya.

Şimdi Tomcat sunucunuzu başlatın ve diğer web sayfalarına standart bir tarayıcı kullanarak webapps klasöründen erişebildiğinizden emin olun. Bir URL deneyin -http://localhost:8080/TestWeb/helloWorld.htm Spring Web Uygulaması ile her şey yolundaysa aşağıdaki ekranı göreceğiz.

Bir URL deneyin http://localhost:8080/TestWeb/hello.htm Spring Web Uygulaması ile her şey yolundaysa aşağıdaki ekranı göreceğiz.

Bir URL deneyin http://localhost:8080/TestWeb/welcome.htm Spring Web Uygulaması ile her şey yolundaysa aşağıdaki ekranı göreceğiz.

Bir URL deneyin http://localhost:8080/TestWeb/Welcome.htm Spring Web Uygulaması ile her şey yolundaysa aşağıdaki ekranı göreceğiz.