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 フォームで入力チェック(バリデーション)