<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">作爲編程界新人,這兩天接到老大的指示,先去拿Spring MVC實現RESTful接口,熟悉一下以前的技術。這個時候腦袋好大,java都忘得差不多了,更何況用Spring搭建MVC。沒辦法只能用度娘來幫忙了,可是網上各種說法,各種迷糊,終於找到了一篇比較適合新手的博文,再此表示感謝。</span>
下文爲轉載:
下面我把我用到的相關軟件版本列一下,雖然我不知道這些有什麼關係,但是,還是列一下吧,
因爲不知道列哪些,所以就把這些都截了個圖,只知道要用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
上面的博文地址爲:http://blog.csdn.net/fulai0_0/article/details/42967481
——————-————————————分割線————————————————————————————————————————
項目這樣基本就算結束了,我在其中遇到的唯一問題是項目啓動過程中無法啓動。
最後問了一下朋友,修改方法爲在pom.xml文件中增加一句話:
<packaging>war</packaging>
位置如下:
總體來說,對於Spring不熟悉的朋友搭建一個這種簡單的mvc框架也是不容易的,自己搞了一天才弄明白,最後留幾個比較有用的博文給大家參考
http://www.cnblogs.com/davidwang456/p/4122842.html
http://blog.csdn.net/dddddz/article/details/8777126
http://www.oschina.net/question/857812_220501