Thymeleafでブール値を処理する

Thymeleafでのブール値の使用

1. 前書き

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

詳細に入る前に、Thymeleafの基本はthis write-upにあります。

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

In Thymeleaf, any value can be evaluated to a boolean. false:として解釈される値がいくつかあります

  • null

  • ブール値false

  • 0

  • 文字_0_

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

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

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

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

それらの効果は正反対です。Thymeleafは、属性の値がtrue の場合にのみ、th:if 属性を持つ要素をレンダリングし、値がfalse:の場合にのみ属性を使用する場合を除き、thをレンダリングします。

will be rendered
won't be rendered
won't be rendered
will be rendered

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

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

  • and

  • or

  • キーワードnot または「!」による否定シンボル

これらの演算子は、変数式内で使用することも、複数の変数式を組み合わせて使用​​することもできます。

The weather is bad
The weather is bad
The weather is good
The weather is good
It's warm
It's warm
It's warm
It's warm

条件演算子(if-thenif-then-else、およびデフォルト演算子)を使用することもできます。

if-then-else operatorは通常の三項、または?:演算子:

It's 

さらに、if-then operatorは、else部分がない簡略化されたバージョンです。

デフォルトの演算子は、null でない場合は最初のオペランドを返し、そうでない場合は2番目のオペランドを返します。

 
 
 
 

デフォルトの演算子は、エルビスの髪型によく似ているため、エルビス演算子とも呼ばれます。

エルビス演算子はnull checkのみを実行し、最初のオペランドをブール値として評価しないことに注意してください。

5. #bools Utilityオブジェクト

#bools isは、デフォルトで式で使用でき、いくつかの便利なメソッドを持つユーティリティオブジェクトです。

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

  • #bools.isFalse(obj) は、引数がfalseに評価されるかどうかを返します

  • #bools.xxxIsTrue(collection) は引数の要素をブール値に変換し、#bools.isTrue() thenはそれらを同じタイプのコレクションに収集します

  • #bools.xxxIsFalse(collection) は引数の要素をブール値に変換し、#bools.isFalse() thenはそれらを同じタイプのコレクションに収集します

  • #bools.xxxAnd(collection) は、引数のすべての要素がtrueと評価された場合、trueを返します

  • #bools.xxxOr(collection) は、引数のいずれかの要素がtrueに評価された場合、true を返します。

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

6. 結論

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

いつものように、コード(より多くの例を含む)はover on Githubで利用できます。