最近工作需要快速瞭解spring mvc架構,於是在網上找了很多相關教程。說真的,百度出來的基本都一樣,但是我卻遇到各種奇奇怪怪的問題。當然,做完之後回頭看,發現那些問題都不是問題,哈哈哈哈~主要還是不懂java這些東西,遇到問題的時候就會覺得很難,各種查,但是百度的結果又是讓人很無奈,不同的網址,相同的內容。
我參考了一個部落格來建項目,網址是:http://limingnihao.iteye.com/blog/830409。按照這個部落格的流程建立了項目,但是由於實際情況的不同,中間還是有一些不一樣的。
下面我把我用到的相關軟體版本列一下,雖然我不知道這些有什麼關係,但是,還是列一下吧,哈哈哈~~
因為不知道列哪些,所以就把這些都截了個圖,只知道要用jdk,maven,tomcat,和java編譯器(如eclipse)
現在開始建項目
1、建立一個maven項目
圖1
圖2
圖3(第一個複選框一定要框,反正我這裡不選就是錯~)
圖4(Packaging選擇war。反正我之前選jar就有問題了)
圖5(紅框中顯示的不是我想要的,需要修改,右擊它,選擇“Build Path” ==>“ConfigureBuild Path”)
圖6
圖7(不知道為什麼選這個,只是之前看同事選了這個。)
圖8
圖9
到這一步,已經算是建好了一個mave項目。我們現在來配置一些東西。
2、配置pom.xml(可以直接添加到pom.xml裡面,配置一些七七八八的東西。junit、jstl、 spring包)
<dependencies> <!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12-beta-3</version><scope>test</scope></dependency><!-- log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency> <!-- spring 的基本依賴 開始 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>4.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.1.2.RELEASE</version></dependency><!-- spring 的基本依賴 結束 --> </dependencies>
3、在webapp下添加一個檔案夾“WEB-INF”,在檔案夾下添加一個檔案“web.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>dispatcher0121</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcher0121-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher0121</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
web.xml檔案裡有幾個值得注意的地方,上面標紅的“dispatcher0121”可以修改為你想要的字串,但是這個三個地方一定要一樣。[servlet-name]+“-servlet.xml”這個是spring設定檔的檔案名稱的命名規則。
4、在“webapp/WEB-INF/”下再添加一個檔案“dispatcher0121-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="example0121" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> </beans>
dispatcher0121-servlet.xml檔案中也有要注意的地方,"example0121"這個是接下來會用的包,名字可以隨意,但是不能全部是數字。我不想說,我就是偷懶用數字,導致之前建的項目一直有問題。
圖10
5、建立一個Controller層測試類別(這個是什麼東西,我也不知道。只知道怎麼操作)
圖11
按照這個操作,可以添加包也可以添加類,先添加類,要是發現在包那裡沒有寫“example0121”,那就取消,然後添加一個包,包的名字是“example0121”。然後再建立一個叫“GeneralController”的類。
圖12
然後將代碼寫好,像下面一樣
package example0121;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("str0121", "Hellow world"); System.out.println("index.jsp"); } }
6、編寫jsp頁面。在“webapp/WEB-INF/”下添加一個檔案夾“views”,再添加一個檔案“index.jsp”。這個路徑是在“dispatcher0121-servlet.xml”裡面定下來的。
<%@ 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="${str0121}"></c:out> </body> </html>
這個時候你可以看到你的工程出現紅色的叉叉,報了個錯,如圖13。這個時候你要淡定,兩種方法。一是無視它,二是刪掉這個錯。我選擇了無視它,我因為這個錯查了好久資料,莫名煩躁,試了網上說的方法,還是不行。最後問了同事,同事說,你運行一下可不可以用。我運行了項目,發現可以用。然後同事說,那就無視它。似乎好像是校正的問題,反正現在不影響。one or two。。
圖13
7、運行
圖14
圖15
圖16
圖17
圖18
現在算是建立好了項目。要開始深層次的探討了