深色模式
与「仅原型注释块」的机制类似,三种文本模板模式(TEXT、JAVASCRIPT、CSS)都支持通过特殊标记 /*[- */ 和 /* -]*/ 包裹代码——Thymeleaf 处理模板时会完全移除包裹的内容,仅保留外部代码;而静态预览时(直接打开文件),这些标记是合法的注释,内部代码会正常显示/执行。
/*[- */
/* -]*/
var x = 23; /*[- */ // 这段代码仅静态预览时执行,动态处理时被移除 var msg = "This is shown only when executed statically!"; /* -]*/ var f = function() { // ... 业务逻辑 };
var msg = ...
或者 TEXT 模板模式:
... /*[- Note the user is obtained from the session, which must exist -]*/ Welcome [(${session.user.name})]! ...
var x = 23; var f = function() { // ... 业务逻辑 };
Note the user...
Welcome [(${session.user.name})]!
/*[- */ 要移除的代码 /* -]*/
// 动态逻辑:依赖后端用户数据 var username = /*[[${session.user.name}]]*/ null; /*[- */ // 静态模拟数据:动态处理时被移除 var username = "Guest User"; /* -]*/
/*[- 以下内容为订单详情,需确保 order 对象非空 -]*/ Order ID: [(${order.id})] Total: [(${order.total})] EUR
.container { max-width: 1200px; } /*[- */ /* 静态预览用的临时样式,动态处理时移除 */ .container { border: 1px dashed #ccc; } /* -]*/
/*[- */.../* -]*/
/*[+...+]*/
13.4 文本型解析级注释块:代码移除
与「仅原型注释块」的机制类似,三种文本模板模式(TEXT、JAVASCRIPT、CSS)都支持通过特殊标记
/*[- */和/* -]*/包裹代码——Thymeleaf 处理模板时会完全移除包裹的内容,仅保留外部代码;而静态预览时(直接打开文件),这些标记是合法的注释,内部代码会正常显示/执行。var msg = ...生效(作为普通 JS 代码执行);或者 TEXT 模板模式:
var msg = ...生效(作为普通 JS 代码执行);Note the user...可见(作为文本注释);Welcome [(${session.user.name})]!并解析表达式。核心解析
1. 语法与核心规则
/*[- */ 要移除的代码 /* -]*/,开头的/*[- */和结尾的/* -]*/是固定标记,不可拆分;/*[- *///* -]*/是合法的 JS/CSS/文本注释,内部代码/文本会正常显示/执行——实现「静态有模拟内容,动态无冗余代码」。2. 典型使用场景
3. 与文本型仅原型注释块的对比
/*[- */.../* -]*//*[+...+]*/总结
/*[- */.../* -]*/是所有文本模板模式通用的解析级注释块,Thymeleaf 处理时会完全移除包裹内容,静态预览时内容正常显示/执行;/*[+...+]*/配合使用,可实现「静态有模拟逻辑,动态有真实逻辑」的原生模板效果。