模版引擎就是将数据和动态模版页面转成html静态页面。
springboot支持的模版引擎有:FreeMarker、Thymeleaf、jsp、veocity,其中对Freemarker和Thymeleaf支持最友好,其他两个要么性能不好,要么整合起来麻烦。
Thymeleaf模版引擎是新一代模版引擎,springboot2.0以下版本使用的是thymeleaf2,springboot2.0版本支持thymeleaf3,thymeleaf3比thymeleaf2在性能方面有很大的改进。
优点:
1:相比jsp页面Thymeleaf页面更简洁,因为没有下面这一堆的东西
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
|
下面就是Thymeleaf模版页面
<!DOCTYPE HTML>
<
html
>
<
head
>
<
title
th:text
=
"${error}"
></
title
>
</
head
>
<
body
>
</
body
>
</
html
>
|
2:标签内容以标签属性渲染,能更好地前后端分离
jsp这么渲染标签内容,这种写法jsp页面脱离工程,页面显示的是${item.name}没法看。
<
a
target
=
"_blank"
href
=
"#"
>${item.name }</
a
>
|
Thymeleaf这么渲染标签内容,这种写法页面脱离工程,还可以很好的显示。
<
a
target
=
"_blank"
href
=
"#"
th:text
=
"${item.name }"
>张三</
a
>
|
综合考虑呢,我们还是选择Thymeleaf模版引擎,使用该模版引擎需要pom依赖
<
dependency
>
<
groupId
>org.springframework.boot</
groupId
>
<
artifactId
>spring-boot-starter-thymeleaf</
artifactId
>
</
dependency
>
|
1:pom依赖
<
dependency
>
<
groupId
>net.sourceforge.nekohtml</
groupId
>
<
artifactId
>nekohtml</
artifactId
>
<
version
>1.9.22</
version
>
</
dependency
>
|
2:在application.properties中加如下配置
spring.thymeleaf.mode = LEGACYHTML5
|
解释:spring.thymeleaf.mode的默认值是HTML5,其实是一个很严格的检查,改为LEGACYHTML5可以得到一个可能更友好亲切的格式要求。
默认的视图解析:
修改默认视图解析:
spring.thymeleaf.prefix=classpath:/templates/html/ 不要漏写
spring.thymeleaf.suffix=.html
#默认情况下,页面会被浏览器缓存,开发阶段设置为false
spring.thymeleaf.cache=false
|
静态资源存放目录
页面中这么引入静态文件
<
img
src=”/images/….”>
<
script
src=”/js/….”>
<
link
href=”/css/….”>
|
注意:无需带上static目录哦。