2013-05-03 14 views
9

Może to głupie pytanie, ale nie udało mi się pobrać informacji z Google. Jak sam tytuł mówi, mam ślad stosu jeśli spróbować przeanalizować tę prostą linię:Błąd podczas analizy szablonu Thymeleaf z "1 <0"

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

błędu jest:

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.

ale gdy próbuję to:

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

Wszystko w porządku, moje pytanie brzmi: Dlaczego dostaję ten błąd?

Wierzę, że jest to związane z moim brakiem doświadczenia z Javą i thymeleaf, ale nie rozumiem dlaczego, po prostu zmieniając pozycję elementów, które działają tak, jak oczekuję (powrót zawsze jest fałszywy).

To błąd w parsowaniu wyrażenia (sprawdzanie, czy 1 jest niższa niż 0 jest zabronione przez regułę parsera), czy jest to po prostu dziwny problem z analizą XML?

Dziękuję wszystkim, którzy po prostu przeczytają.

Odpowiedz

32

trzeba uciec symbol za pomocą

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

więc kod powinien wyglądać następująco:

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

można znaleźć cały dokument na ten temat w „używanie Thymeleaf” tutoriala na ich website, w sekcji porównawczej i dotyczącej równości.

+0

więc jest to kwestia analizowania XML? – Matteo

+1

Dokładnie, to jest problem z parsowaniem. – brnrd

+0

Nie rozumiem, dlaczego działa większy niż symbol, ale dostałem powód, dla którego istnieje obejście. Dziękuję za twój czas i pomoc. – Matteo

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

nie działa na mnie, musiałem użyć:

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

Wydaje się, że ≤ i ≥ nie są akceptowane jako dobrze uformowane XML.

to rozwiązać na: -

"IllegalStateException: Nie można obsłużyć (8804) '≤'"

Powiązane problemy