Spring Boot 系列 | 第七篇:使用Thymelaef模板
Spring Boot 系列 | 第七篇:使用Thymelaef模板Spring Boot模板引擎Spring Boot支持多种默认模板引擎包括:FreeMarkerGroovyThymeleaf(官方推荐)MustacheJSP技术SpringBoot官方不推荐使用,原因如下:Tomcat只支持war打包方式,不支持jar方式Jetty嵌套的容器不支持jsp...
·
Spring Boot 系列 | 第七篇:使用Thymelaef模板
Spring Boot模板引擎
Spring Boot
支持多种默认模板引擎包括:
FreeMarker
Groovy
Thymeleaf
(官方推荐)Mustache
JSP
技术SpringBoot
官方不推荐使用,原因如下:
Tomcat
只支持war
打包方式,不支持jar
方式Jetty
嵌套的容器不支持jsp
Undertow
当使用以上模板的任何一个,他们默认的默认配置目录为:
src/main/resources/templates
Thymelaef模板引擎
Thymeleaf
是一款用于渲染xml/xhtml/html5
的引擎。使用方式如下:
- 在
Spring Boot
中使用@Controller
中的方法可以直接返回视图名称,模板中会直接渲染 - 模板中的表达式支持
Spring
表达式语言
集成步骤
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
编写Controller
:
@Controller
public class ResourceController {
@GetMapping()
public String index(Model model) {
model.addAttribute("name","wangjianfeng");
return "/index";
}
}
在resources
目录下新建一个目录:templates
,然后在该目录下新建一个文件index.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<span>Hello <span th:text="${name}"> World </span> !</span>
</table>
</body>
</html>
启动项目,访问http://localhost:8080/demo
,查看效果。
发现出错:<meta charset="UTF-8">
,缺少最后的标签封闭符号/,报错而转到错误页
解决方法:
在application.properties
中添加以下配置:
spring.thymeleaf.mode=LEGACYHTML5
添加依赖:
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
再次访问可以看到正确的页面。
Thymeleaf配置
可以在application.properties
中配置一下内容:
# THYMELEAF (ThymeleafAutoConfiguration)
#开启模板缓存(默认值:true)
spring.thymeleaf.cache=true
#Check that the template exists before rendering it.
spring.thymeleaf.check-template=true
#检查模板位置是否正确(默认值:true)
spring.thymeleaf.check-template-location=true
#Content-Type的值(默认值:text/html)
spring.thymeleaf.content-type=text/html
#开启MVC Thymeleaf视图解析(默认值:true)
spring.thymeleaf.enabled=true
#模板编码
spring.thymeleaf.encoding=UTF-8
#要被排除在解析之外的视图名称列表,用逗号分隔
spring.thymeleaf.excluded-view-names=
#要运用于模板之上的模板模式。另见StandardTemplate-ModeHandlers(默认值:HTML5)
spring.thymeleaf.mode=HTML5
#在构建URL时添加到视图名称前的前缀(默认值:classpath:/templates/)
spring.thymeleaf.prefix=classpath:/templates/
#在构建URL时添加到视图名称后的后缀(默认值:.html)
spring.thymeleaf.suffix=.html
#Thymeleaf模板解析器在解析器链中的顺序。默认情况下,它排第一位。顺序从1开始,只有在定义了额外的TemplateResolver Bean时才需要设置这个属性。
#spring.thymeleaf.template-resolver-order=
#可解析的视图名称列表,用逗号分隔
#spring.thymeleaf.view-names=
参考文章:
更多推荐
已为社区贡献8条内容
所有评论(0)