Thymeleafでブール値を処理する

1.はじめに

このクイックチュートリアルでは、Thymeleafでブール値を処理する方法を見ていきます。

詳細に入る前に、Thymeleafの基本はリンクにあります:/thymeleaf-in-spring-mvc[この記事を書く]

2.式をブール値として評価する

  • Thymeleafでは、任意の値をブール値に評価できます。 ** falseとして解釈されるいくつかの値があります:

  • ヌル

  • ブール値 false

  • 0

  • キャラクター\ 0

  • 文字列 “ false” _“ off” 、および “ no” _

他の値はすべて true に評価されます。

3.レンダリング条件としてブール値を使用する

HTML要素を条件付きでレンダリングするには、 __th:if th:except __attributesの2つのオプションがあります。

それらの効果は正反対です - Thymeleafは、属性の値が __trueである場合にのみ attribute、その値が false: である場合にのみ th :exceptである場合にのみ __th:で要素をレンダリングします。

<span th:if="${true}">will be rendered</span>
<span th:unless="${true}">won't be rendered</span>
<span th:if="${false}">won't be rendered</span>
<span th:unless="${false}">will be rendered</span>

4.論理演算子と条件演算子

さらに、Thymeleafでは3つの古典的な論理演算子を使用できます。

  • and

  • または

  • キーワード __not __または“!”記号による否定

  • これらの演算子を変数式の中で使用することも、複数の変数式をそれらと組み合わせることもできます。**

<span th:if="${isRaining or isCold}">The weather is bad</span>
<span th:if="${isRaining} or ${isCold}">The weather is bad</span>
<span th:if="${isSunny and isWarm}">The weather is good</span>
<span th:if="${isSunny} and ${isWarm}">The weather is good</span>
<span th:if="${not isCold}">It's warm</span>
<span th:if="${!isCold}">It's warm</span>
<span th:if="not ${isCold}">It's warm</span>
<span th:if="!${isCold}">It's warm</span>

条件演算子、 if-then if-then-else 、およびデフォルトの演算子も使用できます。

_if-then-else operatorは通常の3項、または ?_ :演算子です。

It's <span th:text="${isCold} ? 'cold' : 'warm'"></span>

さらに、 __if-then __operatorは、その他の部分がない単純化されたバージョンです。

<span th:text="${isRaining or isCold} ? 'The weather is bad'"></span>

デフォルトの演算子は最初のオペランドが __null __でなければ返し、それ以外は2番目のオペランドを返します

<span th:text="'foo' ?: 'bar'"></span> <!-- foo -->
<span th:text="null ?: 'bar'"></span> <!-- bar -->
<span th:text="0 ?: 'bar'"></span> <!-- 0 -->
<span th:text="1 ?: 'bar'"></span> <!-- 1 -->

デフォルト演算子はElvis演算子とも呼ばれ、Elvisの髪型によく似ています。

Elvis演算子は __null __checkのみを実行し、最初のオペランドをブール値として評価するわけではありません。

5. __#bools __Utilityオブジェクト

__#bools __はデフォルトでは式で利用可能なユーティリティオブジェクトで、いくつかの便利なメソッドがあります。

  • __#bools.isTrue(obj) __引数がに評価されたかどうかを返します

** __#bools.isFalse(obj) __引数がに評価されたかどうかを返します

虚偽 ** __#bools.xxxIsTrue(collection) __引数の要素を変換する

__#bools.isTrue()を使用してブール値を取得すると、同じタイプにまとめられます。 コレクションの ** #bools.xxxIsFalse(collection) __の要素を変換する

__#bools.isFalse()を使用してブール値に引数を渡すと、 同種のコレクション ** #bools.xxxAnd(collection)のすべての要素が true__に戻る

引数は true に評価されます ** __ #bools.xxxOr(collection)

引数は true に評価されます

上記のメソッドでは、 __xxx は、メソッドの引数(および xxxIsTrue() xxxIsFalse() の場合は戻り値)に応じて、 array list 、または set__のいずれかになります。

6.まとめ

この記事では、Thymeleafが値をブール値として解釈する方法を説明しました。また、要素を条件付きでレンダリングしてブール式を処理する方法も説明しました。

いつものように、(より多くの例を含む)コードはhttps://github.com/eugenp/tutorials/tree/master/spring-thymeleaf[over on Github]から入手できます。