17

ばかげた質問かもしれませんが、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とタイムリーフの経験不足に関連していると思いますが、要素の位置を変更するだけでは、期待どおりに機能する理由がわかりません(常にfalseを返します)。

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

読んでくれた人もありがとう。

4

3 に答える 3

45

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

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

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

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

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

于 2013-05-04T10:23:03.053 に答える
15
&le; for <= 
&ge; for >=

私にはうまくいきませんでした、私は使用しなければなりませんでした:

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

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

この解決の:-

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

于 2016-09-10T17:21:24.207 に答える