Monday, 19 November 2018

Spring mvc: SimpleUrlHandlerMapping example

SimpleUrlHandlerMapping implements HandlerMapping interface, provides the mapping from URLS to the request handler beans.

Example
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
         <property name="mappings">
                  <value>
                           /hello=helloMsg
                           /welcome=helloMsg
                           /*/welcome=helloMsg
                  </value>
         </property>
</bean>

<bean id="helloMsg" class="com.sample.myApp.controllers.HelloWorldController" />

As you see above snippet, the urls /hello, /welcome and /*/welcome are mapped to HelloWorldController.

Find the below working application.

HelloWorldController.java
package com.sample.myApp.controllers;

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 HelloWorldController extends AbstractController {

 @Override
 protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  ModelAndView modelAndView = new ModelAndView("hello");

  modelAndView.addObject("message", "Welcome to Spring MVC framework");
  return modelAndView;
 }

}


Create hello.jsp file under WEB-INF/jsp folder.

hello.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Hello World Spring Web MVC</title>
</head>
<body>
 <h2>${message}</h2>
</body>
</html>


Create web.xml, HelloWorld-servlet.xml files under WEB-INF directory

web.xml
<web-app id="WebApp_ID" version="2.4"
 xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 <display-name>Spring MVC Hello WorldApplication</display-name>

 <servlet>
  <servlet-name>HelloWorld</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>HelloWorld</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>

</web-app>

HelloWorld-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.handler.SimpleUrlHandlerMapping">
  <property name="mappings">
   <value>
    /hello=helloMsg
    /welcome=helloMsg
    /*/welcome=helloMsg
   </value>
  </property>
 </bean>

 <bean id="helloMsg"
  class="com.sample.myApp.controllers.HelloWorldController" />

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

</beans>


Create index.jsp under webapp folder.


index.jsp
<html>
<body>
 <h2>Hello World!</h2>
</body>
</html>

Project structure looks like below.


Run the application on server and hit any of below urls.

You will get the message 'Welcome to Spring MVC framework'.



Previous                                                 Next                                                 Home

No comments:

Post a Comment