Ошибка синтаксического анализа шаблона тимелеафа с 1 ‹0

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

<span th:if="${1 < 0}">

Ошибка:

org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 43; The value of attribute "th:if" associated with an element type "null" must not contain the '<' character.

Но если я попробую это:

<span th:if="${0 > 1}">

Все нормально, у меня вопрос: почему я получаю эту ошибку?

Я считаю, что это связано с отсутствием у меня опыта работы с Java и тимелеафом, но я не понимаю, почему, просто меняя положение элементов, он работает так, как я ожидал (всегда возвращает false).

Это ошибка в синтаксическом анализе выражения (поскольку проверка того, что 1 меньше 0 запрещена каким-либо правилом синтаксического анализатора), или это просто странная проблема синтаксического анализа XML?

Спасибо всем, кто хоть немного прочитает.


person Matteo    schedule 03.05.2013    source источник


Ответы (2)


Вы должны избежать символа, используя

&lt; for < 
&gt; for >
&le; for <= 
&ge; for >=

Итак, ваш код должен выглядеть так:

<span th:if="${1 &lt; 0}">

Вы можете найти весь документ об этом в учебнике «Использование Thymeleaf» на их веб-сайт в разделе компараторы и равенство.

person brnrd    schedule 04.05.2013
comment
так это проблема синтаксического анализа XML? - person Matteo; 06.05.2013
comment
Собственно, это проблема парсинга. - person brnrd; 06.05.2013
comment
Я не понимаю, почему работает символ «больше», но я понял, почему существует обходной путь. Спасибо за ваше время и помощь. - person Matteo; 06.05.2013
comment
Это портит мой цикл for в JavaScript. - person trusktr; 16.03.2014
comment
Мне нужен этот: for ‹= .. но это приводит к java.lang.IllegalStateException: Cannot handle (8804) '≤' - person phil; 11.05.2016

&le; for <= 
&ge; for >=

у меня не сработало, пришлось использовать:

&lt;= for <= 
&gt;= for >=

Похоже, что и не принимаются как правильно сформированный XML.

Это решение: -

«IllegalStateException: не удается обработать (8804) '≤'»

person Maxime G.    schedule 10.09.2016
comment
спасибо, есть идеи и не работает? У меня такая же проблема. - person Stelium; 30.07.2018
comment
Поскольку не является допустимым оператором в Java, фактически вы должны использовать вместо этого <=. Может давным-давно сработало. Если вы видите ответ @brnrd, если с 2013 года. - person FonzTech; 24.11.2019