Spring MVC Properties Method Name Resolver Example - Spring MVC Framework

What is Spring MVC - Properties Method Name Resolver Example?

The following example explains the readers on how to use Properties Method Name Resolver method of a Multi Action Controller in forms using Spring Web MVC framework. This class is used in mapping multiple URLs to their methods in single controller respectively.

package com.wisdomjobs;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class UserController extends MultiActionController{

public ModelAndView home(HttpServletRequest request,

HttpServletResponse response) throws Exception {

ModelAndView model = new ModelAndView("user");

model.addObject("message", "Home");

return model;

}

public ModelAndView add(HttpServletRequest request,

HttpServletResponse response) throws Exception {

ModelAndView model = new ModelAndView("user");

model.addObject("message", "Add");

return model;

}

public ModelAndView remove(HttpServletRequest request,

HttpServletResponse response) throws Exception {

ModelAndView model = new ModelAndView("user");

model.addObject("message", "Remove");

return model;

}

}

<bean class="com.wisdomjobs.UserController">

<property name="methodNameResolver">

<bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">

<property name="mappings">

<props>

<prop key="/user/home.htm">home</prop>

<prop key="/user/add.htm">add</prop>

<prop key="/user/remove.htm">update</prop>

</props>

</property>

</bean>

</property>

</bean>

Let us consider an example using above configuration-

  1. If URI is /user/home.htm, DispatcherServlet forwards the request to the UserController home() method.
  2. If URI is /user/add.htm, DispatcherServlet forwards the request to the UserController add() method.
  3. If URI is /user/remove.htm, DispatcherServlet forwards the request to the UserController remove() method.

Firstly, a working Eclipse IDE should be in place and follow the steps below to create a Dynamic Form based Web Application

Step

Description

1

Create a project with a nameTestWebunder a packagecom. wisdomjobs as explained in theSpring MVC - Hello World Examplechapter.

2

Create a Java classesHelloController,WelcomeControllerunder thecom. wisdomjobs package.

3

Create a view fileshello.jsp,welcome.jspunderjspsub-folder.

4

The final step is to create the content of all the source and configuration files and export the application as explained below.

UserController.java

package com.wisdomjobs;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

public class UserController extends MultiActionController{

public ModelAndView home(HttpServletRequest request,

HttpServletResponse response) throws Exception {

ModelAndView model = new ModelAndView("user");

model.addObject("message", "Home");

return model;

}

public ModelAndView add(HttpServletRequest request,

HttpServletResponse response) throws Exception {

ModelAndView model = new ModelAndView("user");

model.addObject("message", "Add");

return model;

}

public ModelAndView remove(HttpServletRequest request,

HttpServletResponse response) throws Exception {

ModelAndView model = new ModelAndView("user");

model.addObject("message", "Remove");

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

<property name="caseSensitive" value="true" />

</bean>

<bean class="com.wisdomjobs.UserController">

<property name="methodNameResolver">

<bean class="org.springframework.web.servlet.mvc.multiaction.PropertiesMethodNameResolver">

<property name="mappings">

<props>

<prop key="/user/home.htm">home</prop>

<prop key="/user/add.htm">add</prop>

<prop key="/user/remove.htm">update</prop>

</props>

</property>

</bean>

</property>

</bean>

</beans>

user.jsp

<%@ page contentType="text/html; charset=UTF-8" %>

<html>

<head>

<title>Hello World</title>

</head>

<body>

<h2>${message}</h2>

</body>

</html>

Once the source and configuration files are created export the application. Do right click on the application and Export > WAR File option and save TestWeb.war file in Tomcat’s webapps folder.

Start the Tomcat Server and using a standard browser check if you are having access to other web pages from webapps folder. Try the URL http://localhost:8080/TestWeb/user/add.htm and you must see the below result if everything is fine with Spring Web Application:

 Properties Method Name Resolver Example

All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd DMCA.com Protection Status

Spring MVC Framework Topics