【问题标题】:If..Else in thymeleaf within <li> tags for TagItIf..Else in thymeleaf in <li> 标记为 TagIt
【发布时间】:2016-12-24 22:23:30
【问题描述】:

我有问题。我想显示用户的兴趣列表(或用户没有兴趣的示例)。我需要为我的 TAG-IT 库使用 li 标签来处理它们。这是必须的!

所以我在 thymeleaf 中做了一个 IF,我需要将它与 div 中的 li 标签混合。它为 TAG-IT 库显示了一堆项目符号(兴趣列表),以将它们显示为用户的标签。但是当用户没有附加标签时,我有另一个 IF 来显示带有消息的标签。

我认为我的解决方案应该可行,但结果是它显示了用户的兴趣,而且还应该只在用户是新用户(并且还没有注册兴趣)时显示。就像第二个 IF 不起作用并且总是显示。

<div id="interestDiv">
<ul id="interestList">
    <li th:if="${interest} != null" th:each="interest : ${profile.interests}" th:text="${interest.name}">ID data</li>
    <li th:if="${interest} == null" th:text="'add your interest here (example: music ! )'">ID data</li>
</ul>

【问题讨论】:

    标签: spring if-statement thymeleaf tag-it


    【解决方案1】:

    在第一个&lt;li&gt; each 语句中将初始化${interest} 变量,这个变量永远不会是null。这意味着在这种情况下,您根本不需要 if 声明。如果${profile.interests} 为空,则不会显示任何内容。

    在第二个 &lt;li&gt; 中,您没有对 ${interest} 变量进行任何初始化。这意味着这个变量总是null。为了使&lt;li&gt; 正常工作,您应该检查兴趣列表是否为空。比如:

    <ul id="interestList">
        <li th:each="interest : ${profile.interests}" th:text="${interest.name}">ID data</li>
        <li th:if="${profile.interests.isEmpty()}" th:text="'add your interest here (example: music ! )'">ID data</li>
    </ul>
    

    【讨论】:

    • 您好,肯,感谢您的帮助。用户第一次登录时我仍然有一个小错误,并且没有创建任何兴趣。它给了我一个错误:EL1011E:(pos 18): Method call: Attempted to call method isEmpty() on null context object。但它不会发生第二次,即使利息仍然为零。我不明白。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    相关资源
    最近更新 更多