web-dev-qa-db-ja.com

「1 <0」の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とthymeleafの経験不足に関連していると思いますが、期待どおりに機能する要素の位置を変更するだけでは理由がわかりません(常にfalseを返します)。

これは式の解析のバグです(1が0より小さいかどうかのチェックは、一部のパーサールールで禁止されているため)、または単なる奇妙なXML解析の問題ですか?

読んでくださる皆様、ありがとうございました。

14
Matteo

を使用してシンボルをエスケープする必要があります

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

したがって、コードは次のようになります。

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

これに関するドキュメント全体は、コンパレータと同等性のセクションにある ウェブサイト の「Thymeleafの使用」チュートリアルにあります。

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

私のために働いていませんでした、私は使用しなければなりませんでした:

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

≤および≥は整形式のXMLとして受け入れられていないようです。

この解決策:-

"IllegalStateException:処理できません(8804) '≤'"

14
Maxime G.