Spring MVC - Contoh Pemetaan Url Handler Nama Bean

Contoh berikut menunjukkan cara menggunakan Pemetaan Penangan URL Nama Bean menggunakan Framework MVC Web Spring. ItuBeanNameUrlHandlerMapping class adalah kelas pemetaan penangan default, yang memetakan permintaan URL ke nama kacang yang disebutkan dalam konfigurasi.

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

Misalnya, menggunakan konfigurasi di atas, jika URI

  • /helloWorld.htm atau / hello {sembarang huruf} .htm diminta, DispatcherServlet akan meneruskan permintaan ke HelloController.

  • /welcome.htm diminta, DispatcherServlet akan meneruskan permintaan tersebut ke WelcomeController.

  • /welcome1.htm diminta, DispatcherServlet tidak akan menemukan pengontrol dan server akan menampilkan kesalahan status 404.

Untuk memulai, mari kita memiliki IDE Eclipse yang berfungsi dan mempertimbangkan langkah-langkah berikut untuk mengembangkan Aplikasi Web berbasis Formulir Dinamis menggunakan Spring Web Framework.

Langkah Deskripsi
1 Buat proyek dengan nama TestWeb di bawah paket com.tutorialspoint seperti yang dijelaskan dalam bab Spring MVC - Hello World.
2 Buat kelas Java HelloController, WelcomeController di bawah paket com.tutorialspoint.
3 Buat file view hello.jsp, welcome.jsp di bawah sub-folder jsp.
4 Langkah terakhir adalah membuat konten dari semua file sumber dan konfigurasi dan mengekspor aplikasi seperti yang dijelaskan di bawah ini.

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>

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>

Setelah Anda selesai membuat file sumber dan konfigurasi, ekspor aplikasi Anda. Klik kanan pada aplikasi Anda, gunakanExport → WAR File opsi dan simpan file TestWeb.war file di folder webapps Tomcat.

Sekarang, mulai server Tomcat Anda dan pastikan Anda dapat mengakses halaman web lain dari folder webapps dengan menggunakan browser standar. Coba URL -http://localhost:8080/TestWeb/helloWorld.htm dan kita akan melihat layar berikut, jika semuanya baik-baik saja dengan Aplikasi Web Spring.

Coba URL - http://localhost:8080/TestWeb/hello.htm dan kita akan melihat layar berikut, jika semuanya baik-baik saja dengan Aplikasi Web Spring.

Coba URL http://localhost:8080/TestWeb/welcome.htm dan kita akan melihat layar berikut, jika semuanya baik-baik saja dengan Aplikasi Web Spring.

Coba URL http://localhost:8080/TestWeb/welcome1.htm dan kita akan melihat layar berikut, jika semuanya baik-baik saja dengan Aplikasi Web Spring.