深色模式
混合使用耦合式与解耦式逻辑
启用解耦式模板逻辑后,它并非强制生效的规则。启用该功能仅意味着:模板引擎会尝试查找包含解耦逻辑的资源文件,若该文件存在,则解析并将其与原始模板合并;若不存在,也不会抛出任何错误。
此外,你还可以在同一个模板中混合使用耦合式和解耦式逻辑——例如,在原始模板文件中直接添加部分 Thymeleaf 属性,同时将另一部分逻辑交由独立的解耦逻辑文件管理。这种场景下最常用的方式,是使用 Thymeleaf 3.0 新增的 th:ref 属性。
补充说明
- 耦合式逻辑:即传统写法,直接在 HTML 标签上写
th:text、th:each等属性,逻辑与标记紧耦合; - 解耦式逻辑:逻辑写在独立的
.th.xml文件中,模板文件仅保留纯标记; th:ref属性的作用:可在模板文件中为节点定义“引用标识”,解耦逻辑文件中通过该标识定位节点,无需依赖id/class等原生属性,进一步降低设计与开发的耦合(例如:<div th:ref="userName"></div>,在.th.xml中用sel="[th:ref='userName']"定位该节点);- 启用解耦逻辑的前提:需在模板引擎配置中开启解耦逻辑功能(默认未开启),核心配置如下:java
templateEngine.setEnableDecoupledLogic(true);
总结
- 解耦式逻辑是“可选功能”,无对应的
.th.xml文件时,模板引擎会直接使用原始模板,不会报错; - 支持在同一模板中混合耦合/解耦逻辑,灵活适配不同场景的需求;
- Thymeleaf 3.0 的
th:ref属性是混合逻辑模式下的常用工具,可更优雅地关联模板节点与解耦逻辑。
