作者:谭东
环境为:IntelliJ Idea 2018.3版本
目前都是使用更加方便的Spring boot进行开发后端了,因为不用像Spring MVC这样配置很多的配置文件了。但是学习Spring MVC的常用配置,有助于我们更好的理解Spring boot为我们做了哪些免配置工作,有利于我们更好的拓展学习。那么我就把自己整理的教程步骤分享下。
1、新建项目。使用Maven构建新建项目。
一直下一步,新建后的结构如下:
2、配置Tomcat及完善目录结构。
在WEB-INF文件夹下新建两个xml配置文件,一个是applicationContext.xml:
一个是dispatcher-servlet.xml:
配置完善web.xml:
Archetype Created Web Application
/views/view/index.jsp
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/dispatcher-servlet.xml
1
true
springMVC
/
contextConfigLocation
/WEB-INF/applicationContext.xml
org.springframework.web.context.ContextLoaderListener
接下来完善pom.xml,引入相关包文件,我们这里把后面要用到的thymeleaf也引入了:
4.0.0
com.web.mvc
SpringMVC
1.0-SNAPSHOT
war
SpringMVC Maven Webapp
http://www.example.com
UTF-8
1.7
1.7
4.3.3.RELEASE
3.0.2.RELEASE
junit
junit
4.11
test
javax.servlet
javax.servlet-api
3.1.0
javax.servlet.jsp
jsp-api
2.2
javax.servlet
jstl
1.2
org.springframework
spring-core
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.thymeleaf
thymeleaf-spring4
${thymeleaf.version}
org.thymeleaf
thymeleaf
${thymeleaf.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
SpringMVC
maven-clean-plugin
3.0.0
maven-resources-plugin
3.0.2
maven-compiler-plugin
3.7.0
maven-surefire-plugin
2.20.1
maven-war-plugin
3.2.0
maven-install-plugin
2.5.2
maven-deploy-plugin
2.8.2
完善目录结构后如图:
通过以上配置就可以访问我们的index.jsp了。
我们再写个Controller,通过Controller访问index.jsp页面。
package com.web.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/p")
public class BaseController {
@RequestMapping("/getPage")
public String getPage(Model model) {
return "view/index";
}
}
运行后,通过Controller地址访问:
那么我们配置Spring MVC与JSP页面就完成了。
接下来,我们配置下Spring MVC与thymeleaf模板引擎。这是如果使用thymeleaf模板引擎就要把jsp的模型视图解析器配置注视掉。
修改dispatcher-servlet.xml为:
编写我们的page.html文件:
Insert title here
修改编写Controller:
package com.web.mvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
@RequestMapping("/p")
public class BaseController {
@RequestMapping("/getPage")
public String getPage(Model model) {
return "view/index";
}
@RequestMapping(value = "/page", method = RequestMethod.GET)
public String page(Model model) {
model.addAttribute("text", "This is MyTest page with Thymeleaf!");
return "page";//return "page.html"需要配置 ,
}
}
然后运行:
这样,Spring MVC和thymeleaf就配置好了。
如果想实现thymeleaf和jsp双模板引擎的话,dispatcher-servlet.xml部分内容修改为这样:
关键地方:
而不是原来的:
还有一点需要注意的是:
这句话如果不注释的话,那么下图这句就要注释掉:
然后Controller的return写法也要修改下,从原来的:
return "page";
改为:
return "page.html";
项目Github地址为:https://github.com/jaychou2012/SpringMVC