This
is continuation to my previous post. In this post, I am going to show you, how
can you map request parameters to a 'java.util.Map' object.
@RequestMapping(value
= "welcome", method = RequestMethod.POST)
public
ModelAndView getWelcomeMessage(@RequestParam("userName") String name,
@RequestParam("age") int userAge) {
.....
.....
}
See
the above snippet, it maps the request parameter userName to the method
parameter name and age to the method parameter userAge.
What
if your request has 10 parameters, will you write a method with 10 arguments.
What if your request has dynamic parameters. In those cases, we can map request
parameters to a map like below.
@RequestMapping(value
= "welcome", method = RequestMethod.POST)
public
ModelAndView getWelcomeMessage(@RequestParam Map<String, String>
requestParamMap) {
}
Find
the below working application.
package com.sample.myApp.controllers; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("greeting") public class HelloWorldController { @RequestMapping(value = "welcome", method = RequestMethod.POST) public ModelAndView getWelcomeMessage(@RequestParam Map<String, String> requestParamMap) { String name = requestParamMap.get("userName"); int age = Integer.parseInt(requestParamMap.get("age")); String msg = String.format("Hi %s, you are %d years old", name, age); ModelAndView modelAndView = new ModelAndView("hello"); modelAndView.addObject("message", msg); return modelAndView; } }
Create
hello.jsp file under WEB-INF/jsp folder.
<%@ 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 folder.
<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"> <context:component-scan base-package="com.sample.myApp" /> <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 file under webapp folder.
<html> <head> <title>User Information Page</title> </head> <div id="login_form"> <form method="post" action="/springdemo/greeting/welcome" id="f1"> <table> <tr> <td class="f1_label">User Name :</td> <td><input type="text" name="userName" value="" /></td> </tr> <tr> <td class="f1_label">Age :</td> <td><input type="text" name="age" value="" /></td> </tr> <tr> <td><input type="submit" name="submit" value="submit" style="font-size: 18px;" /></td> </tr> </table> </form> </div> </html>
Project
structure looks like below.
Run
the application on server. You can able to see below form.
Give
the User Name as ‘krishna’ and age as 29 hit the submit button. You can able to
see below kind of output.
No comments:
Post a Comment