[英]How to pass values to variables of a HTML template using Thymeleaf in Spring Boot
[英]Using variables/expressions in comments (in Thymeleaf template)
我需要在页面中添加一些有关生成的信息。
</html>
<!-- page [[${pageCode}]] was generated at [[${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)}]] -->
但对我来说它不起作用。 我应该配置什么或以其他方式做?
您正在寻找下面的第一个示例。
模板标记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
您需要添加属性
th:text="inline"
您可以在文档中看到其中一个祖先
在您的示例中,您的注释不在html根元素中。 你可以这样做:
</html>
<span th:text="inline">
<!-- page [[${pageCode}]] was generated at [[${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)}]] -->
</span>
希望它可以提供帮助
以下内容允许我评估注释标记内的表达式
<span th:utext="'<!-- ' + ${pageCode} + ' was generated at ' + ${#dates.format(currentDate, ‘dd/MMM/yyyy HH:mm’)} + ' -->'" th:remove="tag"></span>
它会删除最后的<span>标记,只留下注释
我担心顶部的示例不起作用 - 它实际上使用变量名称呈现输出,因为Thymeleaf不会在HTML注释标记内处理。
这样做的方法是使用th:utext标记并直接在其中呈现注释。 如果Thymeleaf有一个房产可以在未来的评论或类似内容中说出来,那就不太理想了,但是我们会去。
这是一个有效的例子:
<span th:utext="${'<!-- Branch/Firm: ' + branch.id + '/' + branch.firmId + '-->'}" th:remove="tag"></span>
如果你使用<
和>
然后你会在渲染的HTML中得到完全相同的东西,浏览器将尝试渲染,而不是视为评论。
根据下面的评论,似乎此解决方案适用于布局方言,但可能不在其他方面。
不幸的是,我们没有找到一种方法,如果不添加新标签(但它不适用)。 只是分享:所以我们使用了变通方法: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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.