Just follow the following steps to get the Spring MVC basic set up done using Maven.
1. create following folders on one of your drives
[project] ->src -> main -> java — folder for the source code
[project] ->src
-> main -> resources — folder for the resources, xmls, property files etc….
[project] -> src
-> main ->webapp — the root folder for the web application, will conteain the web content,
pages, css, javascript files etc… and the web-inf folder
[project]->src->
test -> java -– The folder for the test source – junit test classes and anything related to junit testing
[project]->src->
test -> resources – The folder which will contain all resources for our tests.
2. Add the following POM.xml to the project Folder.
pom.xml
<?xml version="1.0"
encoding="UTF-8"?>
<modelVersion>4.0.0</modelVersion>
<groupId>springtest</groupId>
<artifactId>springTest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>Our Spring test project</name>
<properties>
<org.springframework.version>3.0.5.RELEASE</org.springframework.version>
<javax.servlet.jstl.version>1.2</javax.servlet.jstl.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${javax.servlet.jstl.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF8</encoding>
</configuration>
<inherited>true</inherited>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
<testResource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
</build>
</project>
3. create web.xml in webapps/WEB-INF
<?xml version="1.0"
encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>springTest</display-name>
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>
4. create a springapp-servlet.xml in WEB-INF
<?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"
<!-- the application context definition for the springapp
DispatcherServlet -->
<!--
Scans within the base package of the application for @Components to
configure
as beans -->
<!--
@Controller, @Service, @Configuration, etc. -->
<context:component-scan
base-package="springtest" />
<bean
id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property
name="prefix" value="/WEB-INF/jsp/" />
<property
name="suffix" value=".jsp" />
</bean>
</beans>
5. Create sample controller
package springtest.controllers;
import org.apache.log4j.Logger;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
@Controller
public class HelloController {
protected final Logger logger = Logger.getLogger(getClass());
@RequestMapping("/hello.html")
public String handleRequest(Model model) {
logger.debug("Returning index view");
model.addAttribute("message", "HELLO!!!");
return "hello";
}
}
6. create the needed jsp pages.
index.jsp in webapp
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
response.sendRedirect("hello.html"); %>
hello.jsp in web-inf/jsp
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib
uri="http://java.sun.com/jsp/jstl/core"
prefix="c" %>
<html>
<head>
<meta
http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>Hello page</title>
</head>
<body>
<c:out
value="${requestScope.message}"/>
</body>
</html>
Once done you can import this as Existing Maven Project to the IDE,do a maven build and run it on server.
Thanks for Reading....cheers... :-) :-)