thymeleaf语法

Thymeleaf是一种现代的服务器端Java模板引擎,用于Web和独立环境,能够处理HTML、XML、JavaScript、CSS甚至纯文本。以下是Thymeleaf模板语法的基本特点和常用语法元素:

  1. 表达式
  • 使用双花括号{{...}}来表示表达式,例如{{user.name}}。这些表达式会在页面渲染时被解析并替换为具体的值。
  1. Thymeleaf属性
  • 使用th:前缀表示Thymeleaf属性,例如th:textth:ifth:each等。这些属性会在页面渲染时被Thymeleaf解析和处理。
  1. 文本内容
  • 使用th:text属性来设置元素的文本内容。例如,<p th:text="${user.name}">Hello, World!</p>会将user对象的name属性的值作为该元素的文本内容。
  1. 条件判断
  • 使用th:if属性来进行条件判断。例如,<div th:if="${user.isAdmin()}">Admin User</div>会在user对象的isAdmin()方法返回true时才渲染该元素。
  1. 循环
  • 使用th:each属性来遍历集合。例如,<ul> <li th:each="item : ${items}"> {{item}} </li> </ul>会遍历items集合,并为每个元素生成一个<li>标签。
  1. 引入代码块
  • 使用th:insertth:replaceth:include来引入代码块。这些属性常用于公共代码块的提取,例如<div th:insert="fragments :: header"></div>会插入名为header的代码块。
  1. 定义代码块
  • 使用th:fragment来定义代码块,方便被th:insert引用。例如,<div th:fragment="header"> <h1>Welcome</h1> </div>定义了一个名为header的代码块,可以在其他模板中通过th:insert="fragments :: header"引用。
  1. 声明变量
  • 使用th:object属性来声明变量,一般和*{}一起配合使用。例如,<div th:object="${user}"> <p>Name: <span th:text="${user.name}"></span></p> </div>会将user对象作为局部变量,并在<span>标签中输出其name属性。
  1. 设置标签属性
  • 使用th:attr属性来设置标签属性。例如,<a th:attr="href='http://example.com/' + ${user.id}">Link</a>会为<a>标签设置href属性,其值为http://example.com/加上user.id的值。
  1. 表达式语法
  • Thymeleaf提供了简洁的表达式语法,包括${}(用于变量、选择和URL表达式)和#{}(用于消息表达式)。例如,<p th:text="${user.name}">Hello, ${user.name}!</p>会输出user.name的值。

建议

  • 学习Thymeleaf时,建议从基本的表达式和属性开始,逐步掌握条件判断、循环和代码块插入等高级功能。

  • 通过实际编写和测试模板,加深对Thymeleaf语法的理解和应用。

  • 参考Thymeleaf官方文档和示例,以获得更全面的了解和实践指导。

Top