一、Thymeleaf介绍
thymeleaf是spring boot推荐使用的模板引擎,用于渲染XML/XHTML/HTML5内容的模板引擎,类似JSP,Velocity,FreeMaker等,直接以html显示,它可以轻易的与SpringMVC等Web框架进行集成作为Web应用的模板引擎。,前后端可以很好的分离。
二、Thymeleaf语法
1、在html页面中引入thymeleaf命名空间,即,此时在html,模板文件中动态的属性使用th: 命名空间修饰
这样才可以在其他标签里面使用th:这样的语法.这是下面语法的前提*.
<html lang="en" xmlns:th="http://www.thymeleaf.org">
2、th:任意html属性;来替换原生属性的值
3、th属性,常用属性如下:
1) th:text:文本替换
设置当前元素的文本内容,常用,优先级不高
转义
<p th:text="${共享域中的key值}" />
2) th:utext:支持html的文本替换
和th:text差不多,但是它可以使用html的
不转义
<p th:utext="${thUText}" />
3) th:value:属性赋值
设置当前元素的value值,常用,优先级仅比th:text高
<input type="text" th:value="${thValue}" />
4) th:each:循环遍历元素
<!--th:each 遍历列表,常用,优先级很高,仅此于代码块的插入-->
<!--th:each 修饰在div上,则div层重复出现,若只想p标签遍历,则修饰在p标签上-->
<div th:each="message : ${thEach}"> <!-- 遍历整个div-p,不推荐-->
<p th:text="${message}" />
</div>
<div> <!--只遍历p,推荐使用-->
<p th:text="${message}" th:each="message : ${thEach}" />
</div>
5) th:if:条件判断
<!--th:if 条件判断,类似的有th:switch,th:case,优先级仅次于th:each, 其中#strings是变量表达式的内置方法-->
<p th:text="${thIf}" th:if="${not #strings.isEmpty(thIf)}"></p>
6) th:insert:代码块插入
<!--th:insert 把代码块插入当前div中,优先级最高,类似的有th:replace,th:include,~{} :代码块表达式 -->
<div th:insert="~{grammar/common::thCommon}"></div>
<!--引入侧边栏;传入参数-->
<div th:replace="commons/bar::#sidebar(activeUri='emps')