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

时间:2013-05-03 13:24:18

标签: thymeleaf

可能是一个愚蠢的问题,但我无法从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和百万美元的经验有关,但我不明白为什么只是按照我的预期改变它工作的元素的位置(返回总是假的)。

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

感谢所有愿意阅读的人。

2 个答案:

答案 0 :(得分:36)

您必须使用

转义符号
&lt; for < 
&gt; for >
&le; for <= 
&ge; for >=

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

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

您可以在比较器和等式部分的website上的“使用Thymeleaf”教程中找到有关此内容的完整文档。

答案 1 :(得分:11)

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

对我不起作用,我不得不使用:

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

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

这解决了: -

  

&#34; IllegalStateException:无法处理(8804)&#39;≤&#39; &#34;