springboot之freemarker 和thymeleaf模板web开发
Spring Boot 推荐使用Thymeleaf、FreeMarker、Velocity、Groovy、Mustache等模板引擎。不建议使用JSP。
一、Spring Boot 中使用Thymeleaf模板引擎
简介:Thymeleaf 是类似于Velocity、FreeMarker 的模板引擎,可用于Web与非Web环境中的应用开发,并且可以完全替代JSP 。
1、pom.xml 添加依赖
<!-- thymeleaf 模板引擎--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
2、编写controller
import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList; import java.util.List; @Controller public class HomeController { @RequestMapping("/home") public String home(ModelMap modelMap) { System.out.println("11"); modelMap.put("name", "loaderman"); List<String> list = new ArrayList<>(); list.add(" a"); list.add(" b"); list.add(" c"); list.add(" d"); modelMap.put("list", list); return "/home"; } }
3、编写home.html代码,其中th:text="${name}" 为thymeleaf的语法,具体可参考:Thymeleaf 官方文档
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"/> <title>Home</title> </head> <body> <span th:text="${name}"></span> <ul> <li th:each="item : ${list}" th:text="${item}"></li> </ul> </body> </html>
启动应用,访问:http://localhost:8080/home ,可以得到相应结果。
如需修改 thymeleaf 的默认配置,可以在application.properties中添加:
# ================================================
# Thymeleaf配置
# ================================================
# 是否启用thymeleaf模板解析
spring.thymeleaf.enabled=true
# 是否开启模板缓存(建议:开发环境下设置为false,生产环境设置为true)
spring.thymeleaf.cache=false
# Check that the templates location exists.
spring.thymeleaf.check-template-location=true
# 模板的媒体类型设置,默认为text/html
spring.thymeleaf.content-type=text/html
# 模板的编码设置,默认UTF-8
spring.thymeleaf.encoding=UTF-8
# 设置可以被解析的视图,以逗号,分隔
#spring.thymeleaf.view-names=
# 排除不需要被解析视图,以逗号,分隔
#spring.thymeleaf.excluded-view-names=
# 模板模式设置,默认为HTML5
#spring.thymeleaf.mode=HTML5
# 前缀设置,SpringBoot默认模板放置在classpath:/template/目录下
spring.thymeleaf.prefix=classpath:/templates/
# 后缀设置,默认为.html
spring.thymeleaf.suffix=.html
# 模板在模板链中被解析的顺序
#spring.thymeleaf.template-resolver-order=
二、Spring Boot 中使用FreeMarker模板引擎
1、pom.xml 添加依赖
<!-- freemarker 模板引擎 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency>
2、编写controller
同上
3、templates 下新建 home.ftl文件编写html代码,freemarker语法 可参考:FreeMarker 官方文档
home.ftl
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <span>${name}</span> <ul> <#list list as item > <li>${item}</li> </#list> </ul> </body> </html>
如需修改 freemarker 的默认配置,可以在application.properties中添加:
# ================================================
# FreeMarker配置
# ================================================
# 是否开启模板缓存
spring.freemarker.cache=true
# 编码格式
spring.freemarker.charset=UTF-8
# 模板的媒体类型设置
spring.freemarker.content-type=text/html
# 前缀设置 默认为 ""
spring.freemarker.prefix=
# 后缀设置 默认为 .ftl
spring.freemarker.suffix=.ftl
#spring.freemarker.allow-request-override=false
#spring.freemarker.check-template-location=true
#spring.freemarker.expose-request-attributes=false
#spring.freemarker.expose-session-attributes=false
#spring.freemarker.expose-spring-macro-helpers=false
#spring.freemarker.request-context-attribute=
#spring.freemarker.template-loader-path=classpath:/templates/
#spring.freemarker.view-names=
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!