Spring Boot 集成 thymeleaf 模版引擎

Spring Boot 建议使用 HTML 来完成动态页面。Spring Boot 提供了大量的模版引擎,包括 Thymeleaf、FreeMarker、Velocity等。

Spring Boot 官方推荐使用 Thymeleaf 模版引擎来完成动态页面,并且为 Thymeleaf 提供了完美的 Spring MVC 的支持,Thymeleaf模版引擎可以支持纯 HTML 浏览器展现。

Thymeleaf 概述

Thymeleaf 是面向Web和独立环境的现代服务器端Java模版引擎,能够处理HTML、XML、JavaScript、CSS甚至纯文本,可以作为 MVC Web 应用层的 View 层显示数据。

Thymeleaf 标准语言中的大多数处理器都是属性处理器。这样,即使在模版未被处理前,浏览器也可以正确的显示 HTML 模版文件,因为浏览器将简单地忽略其不识别的属性。例如,像下面这段JSP模版的代码片段就不能在模版被解析之前通过浏览器直接显示。

<form:inuptText name="username" value="${user.username}">
然而 Thymeleaf 标准方言将允许实现与上述代码相同的功能。

<input type="text" name="username" value="java" th:value="${user.username}">

浏览器不仅可以正常显示这些信息,而且还可以在浏览器中静态打开时显示一个默认的值,在模版处理期间由 ${user.username}的值代替value的默认值。这样有助于设计师和开发人员处理相同的模版文件,并减少将静态原型转换为工作模版文件所需的工作量。具备这种能力的模版被称为自然模版。

Thymeleaf 基础语法

首先要改写html标签
<html xmlns:th="http://www.thymeleaf.org">
这样才可以在其他标签里面使用th:*这样的语法。
通过xmlns:th="http://www.thymeleaf.org"命名空间,引入 Thymeleaf 模版引擎,将静态页面转换为动态页面。需要进行动态处理的元素都使用 th: 为前缀。

引入URL

Thymeleaf 对于 URL 的处理是通过语法 @{...} 来处理。

<a th:href="@{http://google.com}">绝对路径</a>
<a th:href="@{/}">相对路径</a>
<a th:href="@{css/bootstrap.min.css}">Content 路径,默认访问 static 下的 css 文件夹</a>

表达式

由一些专门的表达式,用来从模版中的 WebContext 获取请求参数、请求、会话和应用程序中的属性。

${x} 将返回存储在 Thymeleaf 上下文中的变量 x 或请求 Request 作用域中的属性。

${param.x}将返回一个名为x的请求参数

${session.x}将返回一个名为x的会话 HttpSession 作用域中的属性。

${application.x}将返回一个名为x的全局 ServletContext 上下文作用域中的属性。

获取变量使用 $ 符号,$表达式只能写在 th 标签内部,否则不会生效。

posted @ 2019-02-25 18:40 这块显卡有点冷 阅读(...) 评论(...) 编辑 收藏