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>
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 }
@RestController默认就会在每个方法上加上@Responsebody,方法返回值会直接被httpmessageconverter转化,如果想直接返回视图,需要直接指定modelAndView。
二、集成jsp
1.首先,需要在你项目上加上webapp标准的web项目文件夹
2.在配置文件上配置,jsp的前缀和后缀
1 spring.mvc.view.prefix=/WEB-INF/ 2 spring.mvc.view.suffix=.jsp
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 }
三、注意
如遇启动项目不起作用的情况,注意调整pom编译路径。
有微调的转自: