Spring MVC – Multiple Controller

We may construct numerous controllers at once in Spring MVC. Each controller class must be annotated with the @Controller annotation. A Spring MVC example with numerous controllers can be found here. The procedure is as follows:
- In the case of Maven, load the spring jar files or add dependencies.
 - Make your controller class.
 - Provide a controller entry in the web.xml file.
 - In a separate XML file, define the bean.
 - Make the rest of the view components.
 - Start the server and make the project available.
 
Example Project
Project Structure:
Step 1. Add dependencies to pom.xml
XML
           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0       <modelVersion>4.0.0</modelVersion>  <groupId>com.zambiatek</groupId>  <artifactId>SpringMVCMultipleController</artifactId>  <packaging>war</packaging>  <version>0.0.1-SNAPSHOT</version>  <name>SpringMVCMultipleController Maven Webapp</name>  <dependencies>    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>3.8.1</version>        <scope>test</scope>    </dependency>          <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-webmvc</artifactId>        <version>5.1.1.RELEASE</version>    </dependency>      <dependency>          <groupId>javax.servlet</groupId>          <artifactId>servlet-api</artifactId>          <version>3.0-alpha-1</version>        </dependency>         </dependencies>  <build>    <finalName>SpringMVCMultipleController</finalName>  </build></project> | 
Step 2. Create the request page
Let’s create a simple JSP page containing two links
index.jsp
HTML
<html><body>  <a href="hello1">Geeksforgeeks Spring MVC Tutorials</a>  ||   <a href="hello2">Geeksforgeeks Spring Boot Tutorials</a></body></html> | 
Step 3. Develop a controller class
Let’s make two controller classes, each of which returns a different view page.
GfgController1.java
Java
package com.zambiatek;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;  @Controllerpublic class GfgController1 {        @RequestMapping("/hello1")    public String display()    {        return "gfgpage1";    }    } | 
GfgController2.java
Java
package com.zambiatek;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;  @Controllerpublic class GfgController2 {        @RequestMapping("/hello2")    public String display()    {        return "gfgpage2";    }    } | 
Step 4. Provide the entry of controller in the web.xml file
web.xml
XML
<?xml version="1.0" encoding="UTF-8"?><web-app>  <display-name>SpringMVC</display-name><servlet>      <servlet-name>spring</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>      <load-on-startup>1</load-on-startup>    </servlet>  <servlet-mapping>      <servlet-name>spring</servlet-name>      <url-pattern>/</url-pattern>  </servlet-mapping>  </web-app> | 
Step 5. Define the bean in the XML file
spring-servlet.xml
XML
<?xml version="1.0" encoding="UTF-8"?>    xsi:schemaLocation="      <!-- Add support for component scanning -->    <context:component-scan base-package="com.zambiatek" />      <!--Add support for conversion, formatting and validation -->    <mvc:annotation-driven/>        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/jsp/"></property>        <property name="suffix" value=".jsp"></property>             </bean>    </beans> | 
Step 6. Create the other view components
gfgpage1.jsp
HTML
<html><body>      <p>Welcome to Geeksforgeeks Spring MVC Tutorial</p>  </body></html> | 
gfgpage2.jsp
XML
<html><body>      <p>Welcome to Geeksforgeeks Spring Boot Tutorial</p>  </body></html> | 
Output:
				
					



