Search code examples
thymeleaf

Error parsing thymeleaf template with "1 < 0"


Maybe is a stupid question but I failed to retrieve information from Google. As the title say, I get a stack trace if a try to parse this simple line:

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

The error is:

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.

But if i try this:

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

Everything is fine, my question is: Why I get this error?

I believe is related to my lack of experience with Java and thymeleaf, but I don't get why by just changing the position of the elements it work as I expect (return always false).

It is a bug in the parsing of the expression (as checking if 1 is lower than 0 is forbidden by some parser rule) or is just a weird XML parsing issue?

Thank you to all who will even just read.


Solution

  • You have to escape the symbol by using

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

    So your code should look like :

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

    You can find the whole doc about this in the 'Using Thymeleaf' tutorial on their website, in the comparators-and-equality section.