Skip to content

11 注释与块

11.1 标准HTML/XML注释

Thymeleaf 模板中可以在任意位置使用标准的 HTML/XML 注释语法 <!-- ... -->,注释内部的内容(包括 th:* 属性、表达式等)不会被 Thymeleaf 解析或执行;注释本身及内部内容会原封不动地出现在最终渲染的 HTML 中。

html
<!-- 这是标准 HTML 注释,会原样出现在最终页面中 -->
<!-- User info follows -->
<div th:text="${user.name}">
  用户名
</div>

最终渲染后的结果(假设 ${user.name}张三):

html
<!-- 这是标准 HTML 注释,会原样出现在最终页面中 -->
<!-- User info follows -->
<div>张三</div>

关键说明

  • 注释内的 Thymeleaf 代码无效:如果在标准注释中写 th:* 属性,Thymeleaf 会完全忽略,不会执行任何逻辑:
    html
    <!-- 以下 th:text 不会被处理,仅作为文本注释 -->
    <!-- <div th:text="${user.age}">年龄</div> -->
    最终渲染后,这段注释依然保留,内部的 <div> 不会被解析和渲染。
  • 用途
    • 给模板添加说明性注释(如标注代码功能、作者、修改时间);
    • 临时注释掉模板中的代码(但注释内容会出现在最终页面源码中);
    • 兼容原生 HTML 注释的使用习惯,无需额外学习新语法。

与 Thymeleaf 专属注释的区别(提前补充)

后续会接触到 Thymeleaf 专属的「解析级注释」<!--/* ... */-->,和标准注释的核心差异:

注释类型语法是否被 Thymeleaf 处理是否出现在最终结果
标准 HTML/XML 注释<!-- ... -->
Thymeleaf 解析级注释<!--/* ... */-->是(仅解析,不执行)

总结

  1. 标准 HTML/XML 注释 <!-- ... --> 在 Thymeleaf 中可任意使用,内容不会被解析处理,且会原样输出到最终页面;
  2. 注释内的 th:* 属性无效,无法执行任何 Thymeleaf 逻辑;
  3. 适合添加模板说明、临时注释代码(但会暴露在页面源码中)。