Thymeleaf if文 条件分岐を行うサンプル

Thymeleafのif文で条件分岐を行うサンプルです。
Thymeleafは、Javaテンプレートエンジンです。

確認環境
・thymeleaf 3

目次

サンプル if文のサンプル
演算子 等価演算子と比較演算子
論理演算子 論理積(&&) AかつB / 論理和(||) AまたはB / 否定(!) Aではない
  三項演算子 / switch文のサンプル

if文のサンプル

  • if文を使用する時は、th:if=を使用します。trueの場合配下の処理を実行します。
  • Thymeleafには、elseやelseifはありません。
  • th:unlessは、判定結果がfalseの場合配下の処理を実行します。
<th:block th:with="a=5,b='red'">
	<th:block th:if="${a == 5}">
	    <p>5です</p><!-- 表示される-->
	</th:block>
	<th:block th:if="${b == 'red'}">
	    <p>redです</p><!-- 表示される-->
	</th:block>
	<th:block th:if="${a != 3}">
	    <p>3ではありません</p><!-- 表示される-->
	</th:block>
	<th:block th:unless ="${a == 2}">
	    <p>2ではありません</p><!-- 表示される-->
	</th:block>
</th:block>

1行目は、変数をセットしています。
2行目は、数値の判定をしています。
5行目は、文字列です。
8行目は、!=を使用できます。値が3ではないとき配下の処理が実行されます。
11行目のunlessは判定結果がfalseのとき配下の処理が実行されます。

th:blockは、HTMLとして出力されません

等価演算子と比較演算子

演算子 説明
a == b aとbの値は等しい。eqでも可。
a != b aとbの値は等しくない。neqでも可。
a gt b aはbより大きい。>の意味。
a ge b aはbより大きい または 等しい。>=の意味。
a lt b aはbより小さい。<の意味。
a le b aはbより小さい または 等しい。<=の意味。

論理積(&&)  AかつB

左の条件式 && 右の条件式

左の式と右の式が両方ともtrueの場合、trueになります。それ以外はfalseです。

<th:block th:with="a=2,b=2">
	<th:block th:if="${a == 2 && b == 2}">
	    <p>OKです</p><!-- 表示される-->
	</th:block>
</th:block>

2行目は、左の式と右の式が共にtrueなので、trueになります。

論理和(||)  AまたはB

左の条件式 || 右の条件式

左の式または右の式のどちらかがtrueの場合、trueになります。

<th:block th:with="a=1,b=2">
	<th:block th:if="${a == 2 || b == 2}">
	    <p>OKです</p><!-- 表示される-->
	</th:block>
</th:block>

2行目は、左の式はfalseですが右の式がtrueなのでtrueになります。

否定(!)  Aではない

!(条件式) 
  • 条件式がfalseの場合にtrueになります。
  • 条件式がtrueの場合にfalseになります。
<th:block th:with="a=1">
	<th:block th:if="${!(a==2)}">
	    <p>OKです</p><!-- 表示される-->
	</th:block>
</th:block>

2行目は値の比較でfalseになり、それを否定するのでtrueになります。

三項演算子

条件式  ?  値1 : 値2
  • 条件式がtrueのとき、値1が返されます。
  • 条件式がfalseのとき、値2が返されます。
<th:block th:with="a=1">
	<p th:text="${a == 1} ? p1 : p2"></p><!-- p1が表示される-->
	<p th:text="${a == 0} ? p1 : p2"></p><!-- p2が表示される-->
</th:block>

2行目は、条件式がtrueになり値1が表示されます。
3行目は、条件式がfalseになり値2が表示されます。

switch文のサンプル

<th:block th:with="a=2">
	<th:block th:switch="${a}">
	    <p th:case="1" th:text="1つめ"></p>
	    <p th:case="2" th:text="2つめ"></p>
	    <p th:case="*" th:text="3つめ"></p>
	</th:block>
</th:block>

1行目は、変数aに値をセットしています。
4行目は、変数aの値と一致するのでその行が表示されます。

以下は、thymeleaf公式のチュートリアルのリンクです。
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf_ja.html#thymeleaf%E3%81%AE%E7%B4%B9%E4%BB%8B

関連の記事

SpringBoot hello worldを表示するサンプル
SpringBoot フォームの値を別画面に渡す
SpringBoot フォームで入力チェック(バリデーション)

△上に戻る