众所周知,thymeleaf支持在后端渲染html内容,如果我只想使用thymeleaf来渲染一段文字,不要其中的html标签,如何实现?
实际业务场景:我需要创建一个短信模板,通过从数据库中查询出的数据来渲染短信模板,渲染后发送。
希望能够支持较为丰富的语法,自己写替换${}占位符比较难以支持数组循环和if判断语法,希望借助thymeleaf来进行短信的渲染。
如果使用常见的thymeleaf 语法,我们可能会写成:
尊敬的客户<span th:text="${customer.name}" />, 您的<span th:text="${customer.product}" />已经购买成功
这样,如果 customer 对象值为 { name:"张三", product:"刑法" } 实际渲染出来的文本是“尊敬的客户<span>张三</span>, 您的<span>刑法</span>已经购买成功”。
其实我们更想要的是“尊敬的客户张三, 您的刑法已经购买成功”
这时可以使用 th:block 标签来实现,block是空标签,不显示。(感谢大佬 http://www.yyjjssnn.cn/articles/849.html)
尊敬的客户<th:block th:text="${customer.name}" />, 您的<th:block th:text="${customer.product}" />已经购买成功