使用了框架进行开发以后,我们用到的jar包会越来越多,每次都手动下载然后拷贝进项目的话,这样会比较麻烦,而且有时候不能很好地处理jar包传递依赖的问题。庆幸的是,Maven出现了,它可以极大地方便了我们对依赖的管理。只要填写好pom.xml这个配置文件,那么Maven会自动为我们下载该jar包及其所依赖的jar包,所以这里我创建一个基于Maven的Spring MVC项目。

        创建Maven项目,首先得安装好Maven环境。如未安装好环境,可参考文章:Maven的安装和配置。


下面是创建的详细步骤:

1、新建项目





2、解决项目报错(没有报错则跳过此步骤)

新建了项目后,我发现项目中报了以下的错。

现解决一下。如果没有报错的话,就忽略此步骤。

解决方法:

(1)右击项目名 -> Buid Path -> Configure Build Path,

(2)选择Libraries选项卡,点击Add Library -> Server Runtime ,

(3)选择一个已建好的tomcat,没有建立tomcat的,请先配置好tomcat。

(4)点击 finish, 可看到如下截图。

点击Apply之后,正常情况下,可以看到项目的红叉已消失。

然后切换到Order and Export 选项:

点击上图的OK之后,可以看到,缺失的资源文件src/main/java和src/test/java已经有了。


注意:作为Maven项目必须包含以下4个资源文件夹,如果没有,需要手动创建。



新建资源文件夹的步骤:




4个资源文件建好之后,还需设置正确的Output folder。




3、更改配置文件pom.xml

这是Maven的主要配置文件,可以在里面配置项目所需要的jar包。


<project xmlns="http://maven.apache/POM/4.0.0" xmlns:xsi="http://www.w3/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache/POM/4.0.0 http://maven.apache/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.hello</groupId>
  <artifactId>HelloSpringMVC</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>HelloSpringMVC Maven Webapp</name>
  <url>http://maven.apache</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-web</artifactId>
    	<version>${springVersion}</version>
    </dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>${springVersion}</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>HelloSpringMVC</finalName>
  </build>
  <properties>
  	<springVersion>4.2.3.RELEASE</springVersion>
  </properties>
</project>




4、更改配置文件web.xml



<web-app xmlns="http://java.sun/xml/ns/javaee"  
      xmlns:xsi="http://www.w3/2001/XMLSchema-instance"  
      xsi:schemaLocation="http://java.sun/xml/ns/javaee http://java.sun/xml/ns/javaee/web-app_3_0.xsd"  
      version="3.0">  
    <display-name>HelloSpringMVC</display-name>
   
     <!-- 前端控制器 -->
    <servlet>  
        <servlet-name>spring-mvc</servlet-name>  <!-- 名称,真实的文件名需要在这个名字后面加上-servlet后缀 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--  DispatcherServlet路径,照写 -->
       
      	<!--   这里可以设置前端控制器的路径,如果这一步注释掉,则默认前端控制器的路径为:/WEB-INF/[servlet-name]-servlet.xml
       <init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/configs/spring-mvc-servlet.xml</param-value> 这里配置前端控制器的路径
		</init-param>  
		-->
		
        <load-on-startup>1</load-on-startup>
    </servlet>  
  	
  	<!-- 拦截所有请求 -->
    <servlet-mapping>  
        <servlet-name>spring-mvc</servlet-name>     <!-- 这里的名字要和上面的servlet-name统一 -->
        <url-pattern>/</url-pattern>  
    </servlet-mapping>  
</web-app>


5、新建前端控制器配置文件

因为这里使用的是默认的路径,所以只需要在WEB-INF目录下创建前端控制器文件。

又因为在web.xml中配置的名称是spring-mvc,所以新建的文件名是spring-mvc-servlet。



6、添加spring-mvc-servlet.xml的内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework/schema/beans"  
    xmlns:xsi="http://www.w3/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework/schema/p" 
    xmlns:context="http://www.springframework/schema/context" 
    xmlns:mvc="http://www.springframework/schema/mvc" 
    xmlns:task="http://www.springframework/schema/task"
    xsi:schemaLocation="
        http://www.springframework/schema/beans 
        http://www.springframework/schema/beans/spring-beans-4.2.xsd 
        http://www.springframework/schema/context 
        http://www.springframework/schema/context/spring-context-4.2.xsd 
        http://www.springframework/schema/mvc 
        http://www.springframework/schema/mvc/spring-mvc-4.2.xsd 
        http://www.springframework/schema/task 
        http://www.springframework/schema/task/spring-task-4.2.xsd">

    <!-- 扫描路径 -->
    <context:component-scan base-package="com.springmvc.controller" >
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <!-- 配置根视图 -->
    <mvc:view-controller path="/" view-name="index"/>

    <!-- 激活基于注解的配置 @RequestMapping, @ExceptionHandler,数据绑定 ,@NumberFormat ,
    @DateTimeFormat ,@Controller ,@Valid ,@RequestBody ,@ResponseBody等  -->
    <mvc:annotation-driven />

    <!-- 静态资源配置 -->
    <mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources>

    <!-- 视图层配置 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

</beans>


7、添加Controller类

书写HelloController.java的内容

package com.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

//url:  http://localhost:8080/HelloSpringMVC/hello/mvc

//告诉DispatcherServlet相关的容器, 这是一个Controller,
@Controller  

//类级别的RequestMapping,告诉DispatcherServlet由这个类负责处理URL。
//HandlerMapping依靠这个标签来工作
@RequestMapping(value="/hello")  
public class HelloController {
		
	//方法级别的RequestMapping, 限制并缩小了URL路径匹配,同类级别的标签协同工作,最终确定拦截到的URL由那个方法处理
	//并指定访问方法为GET
	  @RequestMapping(value="/mvc",method=RequestMethod.GET)  
	    public String HelloWorld(Model model){  
		  
	        model.addAttribute("message","Hello Spring MVC!!!");  //传参数给前端
	        
	      //视图渲染,/WEB-INF/view/HelloWorld.jsp
	        return "HelloWorld";  //页面的名称,根据此字符串会去寻找名为HelloWorld.jsp的页面
	    }  
}

8、添加页面

新建视图文件夹


 

  

新建页面

注意加.jsp后缀


添加页面内容:

<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>HelloSpringMVC</title>  
</head>  
<body>  
<h1>message:${message}</h1>  
<h1>this is my spring mvc</h1>  
</body>  
</html> 


9、解决错误(无错的可以跳过此步骤)

可以看到,自从添加了pom.xml的内容以后,项目是一直有红叉的,现在基本上Spring MVC的配置已经完成了,那么就来解决一下。

(1)右击项目名->Properties(在最下方) ->拖动左侧栏,找到Deployment Assembly ->移除多余部分。

注意:这里一定要确保Maven Dependencies在 Web Deployment Assembly 中,否则无法访问controller中的url。

(2)将Maven Dependencies从Build Path中移除。


(3)进入Configure Build Path,重新添加Maven Dependencies这个Library

正常情况,项目已经没有不报错了。


10、运行项目

上面这个controller对应的页面如下:



至此基于Maven+Spring MVC的HelloWord项目已创建完毕。


源码下载



更多推荐

手把手教你在Eclipse上创建一个Maven+Spring MVC的HelloWord项目