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}">
浏览器不仅可以正常显示这些信息,而且还可以在浏览器中静态打开时显示一个默认的值,在模版处理期间由 ${user.username}
的值代替value的默认值。这样有助于设计师和开发人员处理相同的模版文件,并减少将静态原型转换为工作模版文件所需的工作量。具备这种能力的模版被称为自然模版。
Thymeleaf 基础语法
首先要改写html标签
<html xmlns:th="http://www.thymeleaf.org">
这样才可以在其他标签里面使用th:*
这样的语法。 通过xmlns:th="http://www.thymeleaf.org"
命名空间,引入 Thymeleaf 模版引擎,将静态页面转换为动态页面。需要进行动态处理的元素都使用 th:
为前缀。 引入URL
Thymeleaf 对于 URL 的处理是通过语法 @{...}
来处理。
绝对路径相对路径Content 路径,默认访问 static 下的 css 文件夹
表达式
由一些专门的表达式,用来从模版中的 WebContext 获取请求参数、请求、会话和应用程序中的属性。
${x} 将返回存储在 Thymeleaf 上下文中的变量 x 或请求 Request 作用域中的属性。
${param.x}将返回一个名为x的请求参数
${session.x}将返回一个名为x的会话 HttpSession 作用域中的属性。
${application.x}将返回一个名为x的全局 ServletContext 上下文作用域中的属性。
获取变量使用 $ 符号,$表达式只能写在 th 标签内部,否则不会生效。