SpringBoot集成Spring MVC视图

SpringBoot在springmvc的视图解析器方面就默认集成了ContentNegotiatingViewResolver和BeanNameViewResolver,在视图引擎上就已经集成自动配置的模版引擎,如下:
1. FreeMarker
2. Groovy
3. Thymeleaf
4. Velocity (deprecated in 1.4)
6. Mustache

JSP技术spring boot 官方是不推荐的,原因有三:
1. 在tomcat上,jsp不能在嵌套的tomcat容器解析即不能在打包成可执行的jar的情况下解析
2. Jetty 嵌套的容器不支持jsp
3. Undertow

而其他的模版引擎spring boot 都支持,并默认会到classpath的templates里面查找模版引擎。

一、集成freemarker模版引擎视图

1.现在pom.xml启动freemarker模版引擎视图

1 <dependency>
2     <groupId>org.springframework.boot</groupId>
3     <artifactId>spring-boot-starter-freemarker</artifactId>
4 </dependency>
pom freemarker

2.定义一个模版后缀是ftl,注意是在classpath的templates目录下 

3.在controller上返回视图路径

1 @RestController
2 @RequestMapping("/task")
3 public class TaskController {
4 
5     @RequestMapping("/mvc1")
6     public ModelAndView mvc1() {
7         return new ModelAndView("index");
8     }
9 }
controller

@RestController默认就会在每个方法上加上@Responsebody,方法返回值会直接被httpmessageconverter转化,如果想直接返回视图,需要直接指定modelAndView。

二、集成jsp

1.首先,需要在你项目上加上webapp标准的web项目文件夹

 2.在配置文件上配置,jsp的前缀和后缀

1 spring.mvc.view.prefix=/WEB-INF/
2 spring.mvc.view.suffix=.jsp
pom配置

3.然后直接在controller中返回视图

1 @RestController
2 @RequestMapping("/task")
3 public class TaskController {
4 
5     @RequestMapping("/mvc1")
6     public ModelAndView mvc1() {
7         return new ModelAndView("index");
8     }
9 }
controller

三、注意

如遇启动项目不起作用的情况,注意调整pom编译路径。

有微调的转自:

https://blog.csdn.net/yingxiake/article/details/51288727

原文地址:https://www.cnblogs.com/weitaming/p/11315626.html