Spring MVC – Controller Class Name Handler Mapping | Code Factory


Donate : Link

Medium Blog : Link

Applications : Link

This image has an empty alt attribute; its file name is image-1.png

Spring Tutorial Index Page: Link

  • ControllerClassNameUrlHandlerMapping class automatically it will find out controller class based on your requested url pattern. The ControllerClassNameHandlerMapping class is the convention-based handler mapping class, which maps the URL request(s) to the name of the controllers mentioned in the configuration file. This class takes the Controller names and converts them to lower case with a leading “/”. For example − HelloController maps to “/hello*” URL. So in this case we don’t require to use name attribute in <bean> tag.

Create Java Project

  • Open Eclipse
  • Go to File -> New -> Dynamic Web Project
  • Create MVC-HelloWorld-ControllerClassName project
  • Right click on project -> Build Path -> Configure Build Path -> Libraries tab -> Add External JARs (Used 2.X jars)
    • commons-logging-X.X.jar
    • spring-beans-X.X.X.jar
    • spring-context-X.X.X.jar
    • spring-core-X.X.X.jar
    • spring-web-X.X.X.jar
    • spring-webmvc-X.X.X.jar
  • Also add these jars in WEB-INF/lib folder for runtime.
  • * You can find dtd information from spring-beans-X.X.X.jar -> org -> springframework -> beans -> factory -> xml -> spring-beans.dtd (line no 36 & 37)

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
		http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
	
	<display-name>MVC-HelloWorld-ControllerClassName</display-name>
	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
	<!-- default -->
	<servlet>
		<servlet-name>helloWorld</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>helloWorld</servlet-name>
		<url-pattern>*.code</url-pattern>
	</servlet-mapping>

</web-app>

helloWorld-servlet.xml

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
	"http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>

	<!-- controller class name handler mapping -->
	<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />

	<!-- controller -->
	<bean id="hc" class="com.codeFactory.controller.HelloController" />

	<!-- view resolver -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

HelloController.java

package com.codeFactory.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class HelloController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		String name = request.getParameter("name");
		Map map = new HashMap();
		map.put("type", "ControllerClassNameHandlerMapping");
		map.put("message", "Hello " + name);
		
		ModelAndView modelAndView = new ModelAndView("success", map);
		return modelAndView;
	}
}

index.jsp

<h2>Hello World</h2>
<form action="./hello.code">
	Name: <input type="text" name="name">
	<input type="submit" value="Submit">
</form>

success.jsp

<p>Handler Mapping Type : ${type}</p>
${message}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s