您的位置:首页 > 编程语言 > Java开发

使用Eclipse构建Maven的Spring MVC项目

2016-09-21 18:02 537 查看
  源代码下载

首先Eclipse需要安装Maven的插件;


一、直接建立Maven项目方法


1、建立Maven项目

        接下来使用Eclipse的maven构建一个web项目,以构建Spring MVC项目为例:


1.1 选择建立Maven Project

选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project。点击next。




1.2 选择项目路径

Use default Workspace location默认工作空间。




1.3 选择项目类型

在Artifact Id中选择maven-archetype-webapp




1.4 输入Group ID和 Artifact ID,以及Package

Group ID一般写大项目名称。Artifact ID是子项目名称。

例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。

Package是默认给你建一个包,不写也可以。




1.5 刚建立好后的文件结构如下图




2、配置Maven项目

接下来就需要更改好多配置了。

 


2.1 添加Source文件夹

接下来需要添加src/main/java(存在就不添加了),src/test/java(存在就不添加了) ,src/test/resources三个文件夹。右键项目根目录点击New -> Source Folder,

建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。




2.2 更改class路径

右键项目,Java Build Path -> Source

下面应该有4个文件夹。src/main/java,src/main/resources,src/test/java ,src/test/resources。

 

双击每个文件夹的Output folder,选择路径。

src/main/java,src/main/resources,选择target/classes;

src/test/java ,src/test/resources, 选择target/test-classes;

 

选上Allow output folders for source folders.

 

 

在此处还要更改:

更改文件夹显示的顺序:点击Order and Export。

更改JDK版本:在Libraries双击JRE System Library,要1.6版本。



点击“OK”之后,




2.3 把项目变成Dynamic Web项目

 


2.3.1 右键项目,选择Project Facets,点击Convert to faceted from




2.4 设置部署程序集(Web Deployment Assembly)

 

上面步骤设置完成后,点击OK,Properties窗口会关闭,在右键项目打开此窗口。在左侧列表中会出现一个Deployment Assembly,点击进去后,如下图:



此处列表是,部署项目时,文件发布的路径。

1,我们删除test的两项,因为test是测试使用,并不需要部署。

2,设置将Maven的jar包发布到lib下。

Add -> Java Build Path Entries -> Maven Dependencies -> Finish

设置完成效果图



3、向maven项目中添加jar包

maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。

 

3.1 在pom.xml中添加所需要的jar包

使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring。将spring包全部添加进来。需要添加的其他jar包有:junit、jstl。或者点击pom.xml直接编辑pom.xml文件。这样可以直接copy过来dependencies内容。




3.2设置jar包的scope

当添加进入一个jar包后,有一些属性需要设置,最重要的就是scope,它有以下几种取值:

1.         compile,缺省值,适用于所有阶段,会随着项目一起发布。

2.         provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。

3.         runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。

4.         test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。

5.         system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。

通常SpringMVC项目所需要配置scope的jar包如下图:




4、构建SpringMVC框架

 


4.1 编辑web.xml文件

 

需要添加log4j,字符过滤,Spring 的dispatcher等。

webx.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>  

<web-app xmlns="http://java.sun.com/xml/ns/javaee"   

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   

                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"   

         version="2.5" >  

      

    <!-- 区分项目名称,防止默认重名 -->  

    <context-param>  

        <param-name>webAppRootKey</param-name>  

        <param-value>maven.example.root</param-value>  

    </context-param>  

  

    <!-- Spring的log4j监听器 -->  

    <listener>  

        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  

    </listener>  

  

    <!-- 字符集 过滤器  -->  

    <filter>  

        <filter-name>CharacterEncodingFilter</filter-name>  

        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  

        <init-param>  

            <param-name>encoding</param-name>  

            <param-value>UTF-8</param-value>  

        </init-param>  

        <init-param>  

            <param-name>forceEncoding</param-name>  

            <param-value>true</param-value>  

        </init-param>  

    </filter>  

    <filter-mapping>  

        <filter-name>CharacterEncodingFilter</filter-name>  

        <url-pattern>/*</url-pattern>  

    </filter-mapping>  

  

    <!-- Spring view分发器 -->  

    <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/dispatcher-servlet.xml</param-value>  

        </init-param>  

        <load-on-startup>1</load-on-startup>  

    </servlet>  

    <servlet-mapping>  

        <servlet-name>dispatcher</servlet-name>  

        <url-pattern>*.do</url-pattern>  

    </servlet-mapping>  

  

</web-app> 


4.2 编写Spring配置文件dispatcher-servlet.xml

 

如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>  

<beans xmlns="http://www.springframework.org/schema/beans"   

       xmlns:aop="http://www.springframework.org/schema/aop"   

       xmlns:context="http://www.springframework.org/schema/context"  

       xmlns:mvc="http://www.springframework.org/schema/mvc"   

       xmlns:tx="http://www.springframework.org/schema/tx"   

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

       xsi:schemaLocation="http://www.springframework.org/schema/aop   

        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   

        http://www.springframework.org/schema/beans   

        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   

        http://www.springframework.org/schema/context   

        http://www.springframework.org/schema/context/spring-context-3.0.xsd   

        http://www.springframework.org/schema/mvc   

        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd   

        http://www.springframework.org/schema/tx   

        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">  

  

    <mvc:annotation-driven />  

    <context:component-scan base-package="com.yls.maven" />  

  

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  

        <property name="prefix" value="/WEB-INF/views/" />  

        <property name="suffix" value=".jsp" />  

    </bean>  

  

</beans>  


4.3 编写一个Controller层测试类

 

编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:

package com.yls.maven.view;  

  

import org.springframework.stereotype.Controller;  

import org.springframework.ui.Model;  

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

  

@Controller  

public class GeneralController {  

  

    @RequestMapping(value="index.do")  

    public void index_jsp(Model model){  

        model.addAttribute("nihao", "你好");  

        System.out.println("index.jsp");  

    }  

}  


4.4 编写index.jsp页面

首先在src/main/webapp/WEB-INF下建文件夹views。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。

在views下建index.jsp文件

我们使用jstl获取Controlleradd的数据。

Jsp页面代码如下:

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

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  

<html>  

    <head>  

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  

        <title>Insert title here</title>  

    </head>  

      

    <body>  

        <c:out value="${nihao}"></c:out>  

    </body>  

</html>  


5,发布到tomcat


6,测试

访问地址:http://localhost/com.yls.maven/index.do

访问的结果来个截图:.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息