在eclipse中使用Maven创建spring+springMVC工程

前言

      花了两周时间去学习研究的,虽然网上有各种教程可以照着做,但是在实践过程中总会出现一些教程上没有出现的错误。然后又花时间去了解错误,寻找解决方法,以至于时间很久。本文除了讲述怎么搭建项目,还讲述我在搭建项目过程中遇到的问题,发生该问题的原因,以及我怎么解决的问题。

 

 

准备工作:

  1.安装好Maven

  2.在eclipse中配置好Maven

 关于安装和配置,请网上查找教程自行安装配置。

 

一.新建Maven web工程

 打开eclipse(这里我使用的是eclipse mars),点击File-new-Maven project

弹出如下窗口,填写Maven工程放置的位置,图中圈出的地方。选好放置的地方,点击next.

 在eclipse中使用Maven创建spring+springMVC工程_第1张图片

 

然后出现该方框,选择Maven工程的类型,我们要建的是一web工程,所以,选择圈出工程类型。

 

 在eclipse中使用Maven创建spring+springMVC工程_第2张图片

弹出如下窗口,红色打叉提示我们要填写工程的Group Id和Artifact Id。在这里插几句,Group Id和Artifact Id是干吗用的。这里Group Id和Artifact Id叫做坐标,是工程的坐标,Maven就像一个坐标空间,通过坐标去查找相应的文件。简单说就是给文件一个标志。

 

 在eclipse中使用Maven创建spring+springMVC工程_第3张图片

 

填写好坐标以后,点击finish。

 

新建好工程之后,发现工程报了一个错

 在eclipse中使用Maven创建spring+springMVC工程_第4张图片

 

 

打开报错的文件,查看报错原因。

 

 在eclipse中使用Maven创建spring+springMVC工程_第5张图片

 

打开,报错文件提示缺少这个类javax.servlet.http.HttpServlet,我们可以在pom.xml文件里引入这个包。

选中pom文件,点右键-Maven-add dependency

弹出下边的窗口,在第一个红色方框中输入,ser ,下边的红色方框会进行模糊查询,显示查询结果,然后选择第一个,finish。然后错误就会消失。

在eclipse中使用Maven创建spring+springMVC工程_第6张图片

在eclipse中使用Maven创建spring+springMVC工程_第7张图片

 

 

二.配置文件

1.pom.xml(最终版,pom里引入依赖的方式就像上边引入servlet一样,这里不再赘述,只把最终结果贴出来)

 


  4.0.0
  springMVC3
  springMVC3
  war
  0.0.1-SNAPSHOT
  springMVC3 Maven Webapp
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
    
    	javax.servlet
    	servlet-api
    	2.5
    
    
     
    	org.springframework
    	spring-core
    	4.1.4.RELEASE
    
    
    	org.springframework
    	spring-context
    	4.1.4.RELEASE
    
    
    	org.springframework
    	spring-webmvc
    	4.1.3.RELEASE
    
   
  
  
    springMVC3
    
    	
    		org.apache.maven.plugins
    		maven-assembly-plugin
    		2.2-beta-5
    	
    
  

 

 

 

 

 

 

spring-core.jar
这个jar 文件包含Spring框架基本的核心工具类。Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
外部依赖Commons Logging,(Log4J)。


spring-context:这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,instrumentation组件以及校验Validation方面的相关类。
外部依赖spring-beans, (spring-aop)。

spring-webmvc.jar
这个jar 文件包含Spring MVC框架相关的所有类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
外部依赖spring-web, (spring-support,Tiles,iText,POI)。

spring-web.jar
这个jar 文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入Web Application Context特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
外部依赖spring-context, Servlet API, (JSP API, JSTL, Commons FileUpload, COS)。

 

maven-assembly-plugin 

这是一个插件,Maven在将工程打包的时候,所打包的东西是不包括依赖包的,要想将依赖包也包含进去,必须引入这个插件。如果既不引入这个插件,也没有另外在WEB-INF文件夹下新建lib文件夹引入依赖的jar包,再在自动部署中进行设置(如下图),工程就会一直报错,提示找不到包,找不到类,找不到xml文件什么的。我当时就在这里卡了好久,请教了别人,查阅了一些资料。

在eclipse中使用Maven创建spring+springMVC工程_第8张图片在eclipse中使用Maven创建spring+springMVC工程_第9张图片

2.mvc-dispatcher-servlet.xml

 

在WEB-INF文件夹下建立文件夹configs,spring,和文件mvc-dispatcher-servlet.xml

在eclipse中使用Maven创建spring+springMVC工程_第10张图片

 





	


	
	


	
	
		
	


	


	
	


	
	
	




	
		
		
	

 

 

 

 

 

 

3.web.xml

 


  Archetype Created Web Application
  
   
  
		mvc-dispatcher
		 org.springframework.web.servlet.DispatcherServlet
		
		
          contextConfigLocation
          /WEB-INF/configs/spring/mvc-dispatcher-servlet.xml
        
		1
	
	
	
		mvc-dispatcher
	    
		/
	
  

 

 

 

 

 

 

这里文件已经有解释了,不过多说明,只是注意引入的上边的

mvc-dispatcher-servlet.xml文件的引入路径要对。

其次

 

xmlns="http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
          http://xmlns.jcp.org/xml/ns/javaee/web-app_2_4.xsd"
          version="2.4"

web-app标签里的这串东西在新建工程的时候,web.xml里是没有的,是自己加进去的,它的作用是拿来规范xml文件引入的标签,对xml文件进行规定,哪些标签可以引入。

 

三.java类

 

在下图位置新建包和java类

在eclipse中使用Maven创建spring+springMVC工程_第11张图片

 

 

 

TestController.java

package com;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller
@RequestMapping("/Test")
public class TestController {


	@RequestMapping("/mvc")
	public String helloMvc() {
		return "Test";
	}
}	@RequestMapping("/mvc")
	public String helloMvc() {
		return "Test";
	}
}

四.jsp页面,css文件,js文件

 

新建css文件夹和Test.css文件,新建js文件夹和Test.js文件,新建jsps文件夹和Test.jsp,位置如下。

 


在eclipse中使用Maven创建spring+springMVC工程_第12张图片

 

 

 

 

 

Test.css

 

body{
	background:red;
}

 

 

 

 

 

Test.js

 

$(function() {
alert("123!");
})

 

 

 

 

 

 

这里注意,想以美元符号去获取html元素,对其进行操作。也就是想使用jquery就要在jsp页面引入jquery.min.js,并且在jsp页面中要放在所有js文件之前。否则或报错说$未定义undefined。

 

Test.jsp

 

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>




Insert title here







hello ,this is a test.

 

 

这样子,就可以把工程部署到tomcat里,然后启动tomcat,打开浏览器输入http://localhost:8080/工程名/Test/mvc

就可以访问了。

 

此过程中遇到的问题

1.在使用eclipse引入依赖的时候,eclipse出现了问题

我引入依赖时,都是选中工程的pom.xml点右键-Maven-add Maven

弹出下边的窗口进行引入的

 

在eclipse中使用Maven创建spring+springMVC工程_第13张图片

 

 

但是,有几次我在下图中的方框1输入搜索的artifactId字符时,方框2并没有得出模糊查询的结果


在eclipse中使用Maven创建spring+springMVC工程_第14张图片

 

 

 

我网上搜索的解决办法是,打开Maven repositories如下图,选中圈出红线部分,点右键,选择rebuild  index。然后去重新引入依赖就可以了。

在eclipse中使用Maven创建spring+springMVC工程_第15张图片

 

2.关于访问Test.jsp路径的问题

我是按照慕课的spring mvc教程来学习的,慕课上访问jsp页面的路径直接是不加工程名的,形如:http://localhost:8080/Test/mvc。而我在实践过程中,怎么也访问不到我的页面。后来请教了别人才知道,这是根项目和非根项目的区别。tomcat根项目的页面访问时,访问路径中不用加项目名称,,而非根项目的页面访问路径中一定要有项目名称。

3.其他问题

如依赖包未被Maven打包,还有jquery文件引入位置不当的问题在上边已经说明了,这里不再说明。

 

 

好了,花了两周的时间去搭了这个项目,再花一早上的时间写这篇博文,因为网络的原因,写几个字就停一下,卡住了。希望对你有帮助.

 

 

 

 

 

你可能感兴趣的:(Java,Eclipse,Maven,spring,MVC,spring)