Thymeleaf:访问环境bean
Posted
技术标签:
【中文标题】Thymeleaf:访问环境bean【英文标题】:Thymeleaf: Access Environment bean 【发布时间】:2021-04-08 23:22:51 【问题描述】:我想访问环境属性:
<h1 th:text="$@environment.getProperty('site.name1')">
<span th:text="$@environment.getProperty('site.name2')"></span>
</h1>
但即使 application.property
文件中存在 site.name2
,我也没有得到任何东西
这里是我的 application.properties 文件:
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=false
site.name1=plats
site.name2=bruts
spring.messages.encoding=UTF-8
spring.thymeleaf.encoding=UTF-8
spring.servlet.multipart.max-file-size=1000MB
spring.servlet.multipart.max-request-size=1000MB
spring.servlet.multipart.enabled=true
server.port=8080
这是使用它的外观:
<h1>Plats
<span class="muellerhoff">Bruts</span>
</h1>
并与:
<h1>
<span th:text="$@environment.getProperty('site.name1')"></span>
<br/>
<span class="muellerhoff" th:text="$@environment.getProperty('site.name2')"></span>
</h1>
【问题讨论】:
site.name1 可以,但 site.name2 不行(?!) 您的<h1>
标记中有内容——在本例中为<span>
标记。 <h1>
标签内的所有内容都被 H1 的 th:text
值的结果替换。这就是name2
值消失的原因。整个 <span>
标记被删除。我已经撤回了我的重复投票 - 这不相关 - 对此感到抱歉。
在这些情况下,我喜欢从最终结果开始:您需要最终的 html 看起来像什么?然后你可以从那开始向后工作以创建相关的 Thymeleaf。
【参考方案1】:
最终目标是HTML如下:
<h1>Plats
<span class="muellerhoff">Bruts</span>
</h1>
在这种情况下,您可以使用<th:block>
来处理name1
值。块标签不会出现在最终的 HTML 中。
<h1>
<th:block th:text="$@environment.getProperty('site.name1')"></th:block>
<span class="muellerhoff" th:text="$@environment.getProperty('site.name2')"></span>
</h1>
关于th:block
标签的更多信息可以在here找到。
【讨论】:
以上是关于Thymeleaf:访问环境bean的主要内容,如果未能解决你的问题,请参考以下文章