SpringBoot集成freemarker和thymeleaf模板
SpringBoot集成freemarker和thymeleaf模板
1、在MAVEN工程POM.XML中引入依赖架包
<!-- 引入 freemarker 模板依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- 引入 thymeleaf 模板依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2、在属性系统配置文件中application.properties 加入相关配置
############################################################
#
# freemarker 静态资源配置
#
############################################################
#设定ftl文件路径
spring.freemarker.template-loader-path=classpath:/templates
# 关闭缓存, 即时刷新, 上线生产环境需要改为true
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.check-template-location=true
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=true
spring.freemarker.expose-session-attributes=true
spring.freemarker.request-context-attribute=request
spring.freemarker.suffix=.ftl
############################################################
#
# thymeleaf 静态资源配置
#
############################################################
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
# 关闭缓存, 即时刷新, 上线生产环境需要改为true
spring.thymeleaf.cache=false
3、具体的Controller实体类中需要注解
如:FreemarkerController.java
1 package com.leecx.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.ui.ModelMap; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 7 @Controller 8 @RequestMapping("/ftl") 9 public class FreemarkerController { 10 11 @RequestMapping("/freemaker") 12 public String index(ModelMap modelMap){ 13 modelMap.put("name", "duanml"); 14 return "freemarker/index"; 15 } 16 17 @RequestMapping("/center") 18 public String center(ModelMap modelMap){ 19 modelMap.put("name", "duanml"); 20 return "freemarker/center/center"; 21 } 22 }
如:ThymeleafController.java
1 package com.leecx.controller; 2 3 import org.springframework.stereotype.Controller; 4 import org.springframework.ui.ModelMap; 5 import org.springframework.web.bind.annotation.RequestMapping; 6 7 @Controller 8 @RequestMapping("/th") 9 public class ThymeleafController { 10 11 @RequestMapping("/thymeleaf") 12 public String index(ModelMap modelMap){ 13 modelMap.put("name", "duanml"); 14 return "thymeleaf/index"; 15 } 16 17 @RequestMapping("/center") 18 public String center(ModelMap modelMap){ 19 modelMap.put("name", "duanml"); 20 return "thymeleaf/center/center"; 21 } 22 }
4、在项目的工程中静态资源建立如下的层级关系:
注意freemarker和thymeleaf 两者的静态页面的后缀是不一样的。