Eclipse maven構建springmvc項目

來源:互聯網
上載者:User

標籤:user   word   type   arc   control   package   c項目   maven   string   

一.背景介紹

  對於初學者,用maven構建項目並不是一件容易的事,springmvc並不是MVC中的主流,但是本人覺得springmvc比struts要好用,真正做到了零配置。一次使用,就放不下了。

二.準備工作

  1.Eclipse 3.7

  2.maven

  3.Eclipse 需要安裝maven外掛程式。url:maven - http://download.eclipse.org/technology/m2e/releases 。安裝maven-3.0.4。並且選擇本地的maven,如:

  

 

三.構建工程

  1.用maven外掛程式構建項目架構

  maven具有強大構建功能,使用maven可以構建多種不同類型的工程。這裡我們構建maven-archetype-webapp類型的項目。在Eclipse->New中選擇other,找到maven Project型。如:

  

在選完路徑之後,我們選擇構建類型,如:

  

接下來,填寫工程的Group Id,Artifact Id,如:

  

這裡的Group Id就是大項目的id,Arifact Id就是該項目的Id。就像一個大項目中有許多小項目組成一樣。此時,我們的項目已經成型了,樣子如:

  

接下來,我們要完善項目的目錄,配置。

 

  2.完善項目

  首先,完善目錄,增加重要的source Folder,這個不是簡單的Floder,這些檔案夾是會參與編譯的。增加src/main/java,src/test/resources,src/test/java目錄。讓目錄變成標準的maven結構。如:

  

接下來,改變一些配置:

讓工程的JDK用本地的jdk;

讓工程的字元集為UTF-8;

改變工程的目錄順序;

  這些都完成之後,工程目錄應該是如下的樣子:

  

  

  3.將工程變成web工程

  此時,我們的工程還不是標準的web工程,可以在eclipse中增加web工程的特性,選擇工程的Properties,選Project Facets,如:

  

這裡,我們選擇Dynamic Web Module,版本選擇2.4,這個版本比較通用。如:

  

此時,我們看到目錄中多了一個WebContent目錄,由於使用maven構建,web目錄是src/main/webapp,所以我們刪除WebContent目錄。接下來,要配置web項目的發布目錄,就是Deployment Assembly,

  

test目錄不要發布,WebContent目錄沒有了,所以這三項都刪掉。並且增加src/main/webapp目錄,和Maven Dependenices,完成之後如:

  

於是,我們的工程就完全是一個web工程了。

 

  4.賦予工程的springmvc特性

  配置web.xml,使其具有springmvc特性,主要配置兩處,一個是ContextLoaderListener,一個是DispatcherServlet。代碼如下:  

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  5     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 6  7     <listener> 8         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 9     </listener>10 11     <servlet>12         <servlet-name>exam</servlet-name>13         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>14     </servlet>15 16     <servlet-mapping>17         <servlet-name>exam</servlet-name>18         <url-pattern>/</url-pattern>19     </servlet-mapping>20 21     <welcome-file-list>22         <welcome-file>index.jsp</welcome-file>23     </welcome-file-list>24 </web-app>

  配置ContextLoaderListener表示,該工程要以spring的方式啟動。啟動時會預設在/WEB-INF目錄下尋找applicationContext.xml作為spring容器的設定檔,這裡可以初始化一些bean,如DataSource。我們這裡什麼也不做。代碼如下:

1 <?xml version="1.0" encoding="UTF-8"?>2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">3 <beans>4 </beans>

  配置DispatcherServlet表示,該工程將採用springmvc的方式。啟動時也會預設在/WEB-INF目錄下尋找XXX-servlet.xml作為設定檔,XXX就是DispatcherServlet的名字,該檔案中將配置兩項重要的mvc特性:

HandlerMapping,負責為DispatcherServlet這個前端控制器的請求尋找Controller;

ViewResolver,負責為DispatcherServlet尋找ModelAndView的視圖解析器。

代碼如下:

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!-- Bean頭部 --> 3 <beans xmlns="http://www.springframework.org/schema/beans" 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 5     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 6     xmlns:util="http://www.springframework.org/schema/util" 7     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   8             http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd   9             http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd              10             http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd">11     12     <!-- 啟用@Controller模式 -->13     <mvc:annotation-driven />14     <!-- 對包中的所有類進行掃描,以完成Bean建立和自動依賴注入的功能 需要更改 -->15     <context:component-scan base-package="cc.monggo.web.controller" />16 17     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />18 19     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">20         <property name="prefix">21             <value>/WEB-INF/jsp/</value>22         </property>23         <property name="suffix">24             <value>.jsp</value>25         </property>26     </bean>27 </beans>  

 

  5.讓maven自動設定jar包

  在用maven產生架構時,就產生了pop.xml,這就是maven的設定檔。我們要引入spring-web,servlet等特性的包。代碼如下:

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 3   <modelVersion>4.0.0</modelVersion> 4   <groupId>exam</groupId> 5   <artifactId>exam_3</artifactId> 6   <packaging>war</packaging> 7   <version>0.0.1-SNAPSHOT</version> 8   <name>exam_3 Maven Webapp</name> 9   <url>http://maven.apache.org</url>10   <dependencies>11     <dependency>12       <groupId>junit</groupId>13       <artifactId>junit</artifactId>14       <version>3.8.1</version>15       <scope>test</scope>16     </dependency>17     18     <dependency>19         <groupId>org.springframework</groupId>20         <artifactId>spring-web</artifactId>21         <version>3.0.5.RELEASE</version>22     </dependency>23     24     <dependency>25         <groupId>org.springframework</groupId>26         <artifactId>spring-webmvc</artifactId>27         <version>3.0.5.RELEASE</version>28     </dependency>29     30     <dependency>31         <groupId>org.apache.geronimo.specs</groupId>32         <artifactId>geronimo-servlet_2.5_spec</artifactId>33         <version>1.2</version>34     </dependency>35             36   </dependencies>37   <build>38     <finalName>exam_3</finalName>39   </build>40 </project>

  maven就是這麼簡單,一旦儲存,maven就會自動下載pop.xml的jar包。此時可以看到目錄中Maven Dependencies下產生了jar包。

  更多的jar包可以在maven中心庫下載:http://mvnrepository.com。

  

  6.做個測試

  說了一大堆,只有運行起來才有意思,下面寫個簡單的測試。先寫Controller。編寫兩個類,LoginControler.java,LoginForm.java。代碼如下:

 1 package cc.monggo.web.controller; 2  3  4 import javax.servlet.http.HttpServletRequest; 5 import javax.servlet.http.HttpServletResponse; 6  7 import org.springframework.stereotype.Controller; 8 import org.springframework.web.bind.annotation.RequestMapping; 9 import org.springframework.web.servlet.ModelAndView;10 11 import cc.monggo.domain.LoginForm;12 13 @Controller14 public class LoginController {15     @RequestMapping(value="login")16     public ModelAndView login(HttpServletRequest request,HttpServletResponse response,LoginForm command ){17         String username = command.getUsername();18         ModelAndView mv = new ModelAndView("/index/index","command","LOGIN SUCCESS, " + username);19         return mv;20     }21 }
 1 package cc.monggo.domain; 2  3  4 public class LoginForm { 5     private String username; 6     private String password; 7     public String getUsername() { 8         return username; 9     }10     public void setUsername(String username) {11         this.username = username;12     }13     public String getPassword() {14         return password;15     }16     public void setPassword(String password) {17         this.password = password;18     }19 }

  再增加一些jsp,首頁的index.jsp,主要是做跳轉,代碼如下:

1 <%2     request.getRequestDispatcher("/WEB-INF/jsp/login/login.jsp").forward(request,response);3 %>

   還有兩個jsp,做些簡單的功能,一個表單login.jsp,一個表單提交的返回index.jsp,代碼如下:

 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2     pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <div>11         <form action="login" methed="get">12             <input type="text" name="username">13             <input type="submit" value="SUBMIT">14         </form>15     </div>16 </body>17 </html>
 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2     pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     ${command}11 </body>12 </html>

  整個項目的目錄結構如下:

  

  在tomcat中運行,即可。不要使用Tomcat外掛程式,可能有問題。就用普通的方式。運行效果如:

  

 

Eclipse maven構建springmvc項目

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.