在注释中使用变量/表达式(在Thymeleaf模板中)

时间:2013-07-03 09:25:04

标签: java thymeleaf

我需要在页面中添加一些有关生成的信息。

</html>
<!-- page [[${pageCode}]] was generated at [[${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)}]]  -->

但对我来说它不起作用。 我应该配置某些东西还是以其他方式进行配置?

5 个答案:

答案 0 :(得分:4)

您正在寻找下面的第一个示例。


模板标记1

<span th:inline="text" th:remove="tag" >
   <!-- page [[${pageCode}]] was generated at [[${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)}]]  -->
</span>

结果1 <!-- page [[${pageCode}]] was generated at [[${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)}]] -->


模板标记2

<span th:text="inline" th:remove="tag" >
   <!-- page [[${pageCode}]] was generated at [[${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)}]]  -->
</span>

结果2 inline

答案 1 :(得分:1)

您需要添加属性

th:text="inline"

您可以在documentation

中看到其中一个祖先

在您的示例中,您的评论超出了html根元素。你可以这样做:

</html>
<span th:text="inline">
   <!-- page [[${pageCode}]] was generated at [[${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)}]]  -->
</span>

希望它可以提供帮助

答案 2 :(得分:1)

以下内容允许我评估评论标记

中的表达式
<span th:utext="'&lt;!-- ' +  ${pageCode} + ' was generated at ' + ${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)} + ' --&gt;'" th:remove="tag"></span>

删除&lt; span&gt;最后标记,只留下评论

答案 3 :(得分:1)

我担心顶部的示例不起作用 - 它实际上使用变量名称呈现输出,因为Thymeleaf不会在HTML注释标记内处理。

这样做的方法是使用th:utext标记并直接在其中呈现注释。它是不理想的,如果Thymeleaf有财产可以在未来的评论或其他方面说出来,那将会很好,但我们会去。

这是一个有效的例子:

<span th:utext="${'<!-- Branch/Firm: ' + branch.id + '/' + branch.firmId + '-->'}" th:remove="tag"></span>

如果您使用&lt;&gt;,那么您将在呈现的HTML中获得完全相同的内容,浏览器将尝试呈现该内容,而不是将其视为评论。

根据下面的评论,似乎此解决方案适用于布局方言,但可能不在其他方面。

答案 4 :(得分:0)

不幸的是,我们没有找到一种方法,如果不添加新标签(但它不适用)。 只是分享:所以我们使用了解决方法:在String中处理页面,然后连接该注释块。

而不是

templateEngine.process(templateUrl, context, writer);

类似的东西:

String htmlCode = templateEngine.process(templateUrl, context);
String comment = String.format("<!-- page %s was generated at %s -->", pageCode, date);
return htmlCode + comment;