1、新建一個Gradle工程(Project)
在新建工程窗口的左側中選擇 [Gradle],右側保持默認選擇,點擊next,模塊命名為VelocityDemo。
2、在該工程下新建一個 module,在彈出的窗口的左側中選擇 [Gradle],右側勾選[Spring MVC],如下圖所示:
並勾選[Application server],下方選擇框中選擇Tomcat7.0,如無該選項,則選中右邊的 [ New... ] -- [ Tomcat Server ],
配置 Tomcat 。配置好后,請選擇它。點擊next,模塊命名為springmvc。
3、項目結構及類包規划如下圖:
類包以分層的方式進行組織,當項目規模較大時可為每個子系統創建一個模塊,模塊內再分層。
注意:如果src下無法創建Directory,需要手動修改springmvc.iml配置文件,如下:
<content url="file://$MODULE_DIR$"> <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /> <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" /> <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /> <excludeFolder url="file://$MODULE_DIR$/target" /> </content>
4、測試
在進行下一步之前先驗證一下以上配置的正確性,在IDE右上角的下拉框中選擇Tomcat7.0,如圖,
點擊綠色三角形啟動,如果正常彈出index.jsp頁面即表示正確。
5、用Gradle下載Spring MVC相關包
編輯build.gradle文件,代碼如下:
apply plugin: 'idea' apply plugin: 'java' repositories { mavenCentral() maven { url "http://repo.spring.io/release" } } dependencies { compile( "org.springframework:spring-context:4.0.5.RELEASE", "org.springframework:spring-web:4.0.5.RELEASE", "org.springframework:spring-webmvc:4.0.5.RELEASE" ) testCompile("org.springframework:spring-test:4.0.5.RELEASE") runtime("jstl:jstl:1.2") } task copyJars(type: Copy) { from configurations.runtime into 'lib' // 目標位置 }
在build.gradle文件所在目錄下運行命令:gradle copyJars,gradle自動會分析jar其中依賴關系一並下載,lib目錄下就是你需要的jar包
Gradle文件的語法請讀者另找資料熟悉,如果還缺少其他包,自行在dependencies 中添加即可。
6、Spring MVC框架配置
首先需要對web.xml文件進行配置,以便Web容器啟動時能夠自動啟動Spring容器,也可以通過代碼配置Spring,
通過代碼配置Spring請參考文章:http://makble.com/gradle-example-to-build-spring-mvc-application
通過web.xml文件配置的方式如下:
6.1先在resources文件夾下添加Spring Config類型的文件,命名為:applicationContext,
6.2在web.xml文件中添加如下代碼:
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <servlet> <servlet-name>spring-web</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>spring-web</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping>
通過以上配置文件創建了一個名為spring-web的Servlet,並對這個Servlet的URL路徑映射進行了定義,讓所有以.html為后綴
的URL都能被spring-web Servlet截獲,進而轉由Spring MVC框架進行處理。請求被Spring MVC截獲后,首先根據請求的URL
查找到目標的處理控制器,並將請求參數封裝成一個“命令對象”一起傳給控制器處理,控制器調用Spring容器中的業務Bean完
成業務處理工作並返回結果視圖。
6.3 在controller包下面創建一個類LoginController:
package controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @Controller public class LoginController { @RequestMapping(value = "/login.html") public String loginPage() { return "login"; } @RequestMapping(value = "/loginCheck.html") public ModelAndView loginCheck(HttpServletRequest request, LoginCommand loginCommand) { return new ModelAndView("main"); } }
創建LoginCommand 類
public class LoginCommand { private String userName; private String password; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
6.4 在web-inf下創建一個與上一步定義的Servlet同名的Spring配置文件即spring-web-servlet.xml,代碼如下:
<!-- 掃描web包,應用Spring的注解 --> <context:component-scan base-package="controller"/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/view/"/> <property name="suffix" value=".jsp"/> </bean>
6.5 web-inf下創建login.jsp和main.jsp頁面,index頁面代碼如下:
<html> <head> <title>Hello</title> </head> <body> <h1>歡迎!</h1> <a href="/login.html">進入登錄頁面</a> </body> </html>
login.jsp頁面代碼如下:
<html> <head> <title>登錄</title> </head> <body> <c:if test="${!empty error}"> <c:out value="${error}"/> </c:if> <form action="<c:url value="/loginCheck.html"/>" method="post"> 用戶名: <input type="text" name="userName"> <br> 密 碼: <input type="password" name="password"> <br> <input type="submit" value="登錄"/> </form> </body> </html>
7、測試
啟動Tomcat7.0,彈出index頁面,點擊鏈接進入login頁面,點擊登錄進入main頁面。
Demo源碼下載:VelocityDemo.zip,后續章節將會在該Demo基礎上集成Velocity和MyBatis。