Spring MVC - Bean Name Url Handler Mapping Example

Aşağıdaki örnek, Spring Web MVC Çerçevesi kullanılarak Bean Adı URL İşleyicisi Eşlemesinin nasıl kullanılacağını gösterir. BeanNameUrlHandlerMapping sınıfı, URL isteklerini yapılandırmada belirtilen fasulye adıyla eşleyen varsayılan işleyici eşleme sınıfıdır.

<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.handler.BeanNameUrlHandlerMapping"/>

   <bean name = "/helloWorld.htm" 
      class = "com.tutorialspoint.HelloController" />

   <bean name = "/hello*" 
      class = "com.tutorialspoint.HelloController" /> 

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

Örneğin, yukarıdaki yapılandırmayı kullanarak 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.

  • /welcome1.htm istendi, DispatcherServlet herhangi bir denetleyici bulmayacak ve sunucu 404 durum hatası atacak.

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 aşağıdaki adımları göz önünde bulunduralım.

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, 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, tü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.handler.BeanNameUrlHandlerMapping"/>

   <bean name = "/helloWorld.htm" 
      class = "com.tutorialspoint.HelloController" />

   <bean name = "/hello*" 
      class = "com.tutorialspoint.HelloController" /> 

   <bean name = "/welcome.htm"
      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. Uygulamanıza sağ tıklayın, kullanınExport → 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 webapps klasöründen standart bir tarayıcı kullanarak 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/welcome1.htm Spring Web Uygulaması ile her şey yolundaysa aşağıdaki ekranı göreceğiz.