用"1 <0"解析百里叶模板时出错

Mat*_*teo 14 thymeleaf

也许是一个愚蠢的问题,但我无法从谷歌检索信息.正如标题所说,如果尝试解析这个简单的行,我会得到一个堆栈跟踪:

<span th:if="${1 < 0}">
Run Code Online (Sandbox Code Playgroud)

错误是:

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}">
Run Code Online (Sandbox Code Playgroud)

一切都很好,我的问题是:为什么我得到这个错误?

我认为这与我缺乏Java和百万美元的经验有关,但我不明白为什么只是按照我的预期改变它工作的元素的位置(返回总是假的).

这是解析表达式的一个错误(因为检查1是否低于0是某些解析器规则禁止的)或者只是一个奇怪的XML解析问题?

感谢所有愿意阅读的人.

brn*_*nrd 41

你必须通过使用逃避符号

&lt; for < 
&gt; for >
&le; for <= 
&ge; for >=
Run Code Online (Sandbox Code Playgroud)

所以你的代码应该是这样的:

<span th:if="${1 &lt; 0}">
Run Code Online (Sandbox Code Playgroud)

您可以在他们的网站上的"使用Thymeleaf"教程中,在比较器和相等部分中找到有关此内容的完整文档.

  • 这弄乱了我的JavaScript for循环。 (2认同)
  • 我需要这个:&le; for &lt;= ..但导致java.lang.IllegalStateException:无法处理(8804)'≤' (2认同)

小智 15

&le; for <= 
&ge; for >=
Run Code Online (Sandbox Code Playgroud)

不适合我,我不得不使用:

&lt;= for <= 
&gt;= for >=
Run Code Online (Sandbox Code Playgroud)

似乎≤和≥不被接受为格式良好的XML.

这解决了: -

"IllegalStateException:无法处理(8804)'≤'"