深色模式
Thymeleaf 的「仅原型注释块(prototype-only comment blocks)」是一种反向的注释机制:静态预览(原型模式)时,内容以注释形式隐藏;Thymeleaf 处理模板时,注释标记被移除,内容变为正常标记执行。
简单来说:它让模板在浏览器直接打开时“隐藏”动态代码,Thymeleaf 解析时“激活”这些动态代码,兼顾原型的整洁性和动态渲染的正确性。
<span>hello!</span> <!--/*/ <!-- 静态预览时:这部分是注释(隐藏);Thymeleaf 处理时:注释标记被移除,内容正常执行 --> <div th:text="${user.name}">用户名</div> /*/--> <span>goodbye!</span>
Thymeleaf 解析模板时,只会移除 <!--/*/ 和 /*/--> 这两个标记,保留中间的所有内容,因此上述代码会被解析为:
<!--/*/
/*/-->
<span>hello!</span> <div th:text="${user.name}">用户名</div> <span>goodbye!</span>
与解析级注释块一样,它的生效不依赖于任何特定的方言(你不需要在你的方言配置中启用或声明它,引擎在解析阶段就会直接处理它)。
为了更清晰区分三种注释,整理对比表如下:
<!-- ... -->
<!--/* ... */-->
<!--/*/ ... /*/-->
th:text
th:each
11.3 Thymeleaf仅原型注释块
Thymeleaf 的「仅原型注释块(prototype-only comment blocks)」是一种反向的注释机制:静态预览(原型模式)时,内容以注释形式隐藏;Thymeleaf 处理模板时,注释标记被移除,内容变为正常标记执行。
简单来说:它让模板在浏览器直接打开时“隐藏”动态代码,Thymeleaf 解析时“激活”这些动态代码,兼顾原型的整洁性和动态渲染的正确性。
Thymeleaf 解析模板时,只会移除
<!--/*/和/*/-->这两个标记,保留中间的所有内容,因此上述代码会被解析为:与解析级注释块一样,它的生效不依赖于任何特定的方言(你不需要在你的方言配置中启用或声明它,引擎在解析阶段就会直接处理它)。
核心特征对比
为了更清晰区分三种注释,整理对比表如下:
<!-- ... --><!--/* ... */--><!--/*/ ... /*/-->典型使用场景
关键注意事项
<!--/*/开头、/*/-->结尾,中间内容可任意换行,标记缺失会导致解析异常;th:text、th:each等),并非仅显示静态内容;总结
<!--/*/ ... /*/-->的核心逻辑是“原型隐藏、解析激活”:静态预览时内容为注释(隐藏),Thymeleaf 处理时移除注释标记,内容正常执行;