【问题标题】:Thymeleaf hide tag wen th:text="#{var}"Thymeleaf 隐藏标签 wen th:text="#{var}"
【发布时间】:2020-05-07 22:04:47
【问题描述】:

嗨,我正在尝试隐藏标签,但消息为空,但我似乎无法弄清楚如何,因为如果我想隐藏和清空变量,我需要做的就是使用“除非”或“如果”:

 <p th:unless="${#strings.isEmpty(myVar.theEmptyVar)}">

但是当我使用消息类型 var 时,代码似乎不起作用

<p th:unless=""{#strings.isEmpty(messageVar)}">

我得到的最接近的是这个,但它不会显示任何东西:

<p th:if="${!#strings.isEmpty('[[#{label}]]')}" >

我一直在浏览 thymeleaf 文档和谷歌,但我似乎找不到有效的解决方案,谢谢。

【问题讨论】:

  • 你能更好地解释你的情况吗?为什么总是更改示例中的变量名?你能写出 myVar 结构吗?
  • 嗨,我用它们作为案例,抱歉混淆了,基本上我有这个代码:

    我想当 var 为空时隐藏它,我正在考虑使用“if”或除非,但我使用的是:

    代码中断

标签: java spring-boot thymeleaf


【解决方案1】:

假设您有label,这是消息文件中的一个空条目,如下所示:

label=

...那么您可以在 Thymeleaf 模板中使用以下内容:

<p th:if=" ! ${#strings.isEmpty(#messages.msg('label'))}">
     my text     
</p>

! 是一个否定(“非”)。因此,由于label 的消息为空,您将不会在网页中看到“我的文本”,并且&lt;p&gt; 标记将不会 被创建。

如果您删除!,那么您&lt;p&gt; 标签内看到“我的文字”。

在这种特定情况下,您不能直接使用#{label}。您必须将其包装在 #messages.msg() 方法中。

此外,如果消息文件中不存在label 消息,则其行为方式与label= 相同。

【讨论】:

  • 另一种解决方法:&lt;th:block th:with="var=#{var}"&gt;&lt;p th:unless="${#strings.isEmpty(var)}" th:text="${var}" /&gt;&lt;/th:block&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-31
  • 2021-01-19
  • 2017-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
相关资源
最近更新 更多