Spring MVC Example – Reading HTML Form Data

We have discussed earlier a simple example of Spring MVC in which we have created multiple view pages. Here, we are going to create another Spring MVC example in which we are going to read the HTML form data.

Following are the steps to create this example:

Directory Structure of Spring MVC example

Spring MVC Example – Reading HTML Form Data
  1. Create a web request page

In this step, we are going to create a web request page named index.jsp, which is providing three links to different view pages.

index.jsp

 <html>
 <body>
 <h2> Spring MVC Web application </h2>
 <a href = "home_page"> Home page | </a>
 <a href = "about_us"> About Us | </a>
 <a href = "general-form"> Query Form </a>
 </body>
 </html> 
  • Create the Controller class

In this step, we are going to create the Controller class named MainController, which returns the JSP pages. We are going to map the view pages with the method using the @RequestMapping annotation.

MainController.java

 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 @Controller
 public class MainController {
    @RequestMapping("/general-form")
     public String showForm() {
                 return "genform" ;          
     }
     @RequestMapping("/processform")
     public String getFormData() {
                 return "formdata";
       }
  } 
  • Add the entry of the Controller into web.xml file.

In this step, we are going to add the entry of the Controller in the web.xml file.

web.xml

 <?xml version = "1.0" encoding = "UTF-8"?>
 <web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
                 xmlns = "http://xmlns.jcp.org/xml/ns/javaee"
                 xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee                    http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
                 id = "WebApp_ID" version = "3.1">
                 <display-name>spring-mvc</display-name>
                 <absolute-ordering />
                 <!-- Spring MVC Configs -->
                 <!-- Step 1: Configure Spring MVC Dispatcher Servlet -->
                 <servlet>
                                 <servlet-name>dispatcher</servlet-name>
                                 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                                 <init-param>
                                                 <param-name>contextConfigLocation</param-name>
                                                 <param-value>/WEB-INF/spring-servlet.xml</param-value>
                                 </init-param>
                                 <load-on-startup>1</load-on-startup>
                 </servlet>
                 <!-- Step 2: Set up URL mapping for Spring MVC Dispatcher Servlet -->
                 <servlet-mapping>
                                 <servlet-name>dispatcher</servlet-name>
                                 <url-pattern>/</url-pattern>
                 </servlet-mapping>
 </web-app> 
  • Add the entry of bean into another XML file.

In this step, we are going to define the bean inside an XML file (usually spring-servlet.xml). We are going to keep our JSP files in a folder named view, which is available inside the WEB-INF folder. The "/WEB-INF/view/" is used as the prefix, and ".jsp" is used as the suffix for the JSP files.

spring-servlet.xml

 <?xml version = "1.0" encoding = "UTF-8"?>
 <beans xmlns = "http://www.springframework.org/schema/beans"
                 xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 
                 xmlns:context = "http://www.springframework.org/schema/context"
                 xmlns:mvc = "http://www.springframework.org/schema/mvc"
                 xsi:schemaLocation = "  http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context.xsd
 http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/mvc/spring-mvc.xsd">
                 <!-- Step 3: Add support for component scanning -->
                 <context:component-scan base-package = "com.app.SpringMVC2" />
                 <!-- Step 4: Add support for conversion, formatting and validation support -->
                 <mvc:annotation-driven/>
                 <!-- Step 5: Define Spring MVC view resolver -->
                 <bean
                                 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                                 <property name = "prefix" value = "/WEB-INF/view/" />
                                 <property name = "suffix" value = ".jsp" />
                 </bean>
 </beans> 
  • Create the JSP files

In this step, we are going to create other JSP files that are required in the application. We are going to create two JSP files, one is genform, and the other is formdata. The genform.jsp file contains an HTML form, and formdata.jsp will get the form data and display it.

genform.jsp

 <%@ page language = "java" contentType="text/html; charset=ISO-8859-1"
     pageEncoding = "ISO-8859-1"%>
 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="ISO-8859-1">
 <title>Spring MVC Form</title>
 </head>
 <body>
 <form action = "processform" method = "get" >
  <input type = "text" name = "StudentName" placeholder = "Write your name "/>
  <br></br>
  <input type = "submit" value = "Submit"/>
 </form>
 </body>
 </html> 

formdata.jsp

 <%@ page language = "java" contentType = "text/html; charset=ISO-8859-1"
     pageEncoding = "ISO-8859-1"%>
 <!DOCTYPE html>
 <html> 
 <head>
 <meta charset="ISO-8859-1">
 <title>Insert title here</title>
 </head>
 <body>
 <h4>welcome ${param.StudentName} </h4>
 <br></br>
 STUDENT NAME: ${param.StudentName}
 </body>
 </html> 

Output

Spring MVC Example – Reading HTML Form Data 1
Spring MVC Example – Reading HTML Form Data 2
Spring MVC Example – Reading HTML Form Data 3
Spring MVC Example – Reading HTML Form Data 4