Spring MVC - Contoh Pemetaan Penangan Nama Kelas Pengontrol

Contoh berikut menunjukkan cara menggunakan Pemetaan Penangan Nama Kelas Pengontrol menggunakan kerangka MVC Web Spring. ItuControllerClassNameHandlerMappingclass adalah kelas pemetaan penangan berbasis konvensi, yang memetakan permintaan URL ke nama pengontrol yang disebutkan dalam konfigurasi. Kelas ini mengambil nama Pengendali dan mengubahnya menjadi huruf kecil dengan awalan "/".

Misalnya - HelloController memetakan ke 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>

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.

  • /Welcome.htm diminta dimana W adalah kapital, DispatcherServlet tidak akan menemukan controller apapun dan server akan menampilkan kesalahan status 404.

Untuk memulainya, mari kita memiliki IDE Eclipse yang berfungsi dan ikuti langkah-langkah selanjutnya 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 dan 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 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.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>

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

Sekarang, jalankan server Tomcat Anda dan pastikan Anda dapat mengakses halaman web lain dari folder webapps 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/Welcome.htm dan kita akan melihat layar berikut, jika semuanya baik-baik saja dengan Aplikasi Web Spring.