Блок переключателей Thymeleaf возвращает неверное значение - PullRequest
0 голосов
/ 10 июня 2018

У меня есть блок переключателей на странице тимилиста, где я показываю изображение в зависимости от оценки репутации пользователя:

<h1>
    <span th:text="#{user.reputation} + ${reputation}">Reputation</span>
</h1>
<div th:if="${reputation lt 0}">
    <img th:src="@{/css/img/troll.png}"/>
</div>
<div th:if="${reputation} == 0">
    <img th:src="@{/css/img/smeagol.jpg}"/>
</div>
<div th:if="${reputation gt 0} and ${reputation le 5}">
    <img th:src="@{/css/img/samwise.png}"/>
</div>
<div th:if="${reputation gt 5} and ${reputation le 15}">
    <img th:src="@{/css/img/frodo.png}"/>
</div>
<div th:if="${reputation gt 15}">
    <img th:src="@{/css/img/gandalf.jpg}"/>
</div>

Это утверждение всегда возвращает смэгол (так что репутация 0), даже если репутацияэтот пользователь 7: пример

РЕДАКТИРОВАТЬ:

Я был не прав, на изображении изображена мошенническая линия:

<!--<img th:src="@{/css/img/smeagol.jpg}"/>-->

но я это закомментировал.Теперь изображение не отображается.

EDIT2:

изменил мои компараторы (см. Исходное сообщение), и теперь я получаю следующую ошибку:

 The value of attribute "th:case" associated with an element type "div" must not contain the '<' character.

EDIT3:

Работает сейчас, обновленный исходный пост в рабочий код

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Согласно документации , оператор Thymeleaf switch работает так же, как Java - и пример предлагает то же самое.

Другими словами: вы не можете сделать

<th:block th:switch="${reputation}">
    <div th:case="${reputation} < 0">
[...]

но нужно будет сделать

<th:block th:switch="${reputation}">
    <div th:case="0">
[...]

, что не то, что вы хотите.

Вместо этого вам придется использовать th:if, то есть что-то вродеэто:

<div th:if="${reputation} < 0">
    <img  th:src="@{/css/img/troll.png}"/>
</div>
0 голосов
/ 10 июня 2018

Изменить

  <div th:case="0">
    <img  th:src="@{/css/img/smeagol.jpg}"/>
  </div>

на

  <div th:case="${reputation == 0}">
    <img  th:src="@{/css/img/smeagol.jpg}"/>
   </div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...