Themeleaf if elseの処理方法

2021-06-27

こんにちは、管理人です。

今回はタイムリーフのif文について触れていきたいと思います。

開発現場で使用する頻度が多かったので簡単にですが、まとめることにしました。

下記のような方は是非参考にして下さい。

  • Spring bootでの開発予定がある方
  • Thymellef初心者

タイムリーフとは?

そもそもタイムリーフとは何でしょうか。

厳密に言うと違うと思いますが、一言で言えば

JSPみたいなもと認識してもらえれば大丈夫です。

コントローラーでModelに積めることによって、HTML上でJavaの処理を記述することが出来ます。

ちなみにJavascriptにも記述することが出来ます。

タイムリーフを使用する場合は「th:〇〇」と記述します。

例としては、

  • th:if
  • th:text
  • th:value
  • th:checked
  • th:selected
  • th:style

if文

if文の処理について確認していきます。

単純なif文の場合はこれ

<th:block th:if=”${test == 1}”></th:block>

このように記述することでtestの値が1の場合th:block内の中の処理が表示することができます。

else if の場合はこれ

<th:block th:if=”${test == 1}”>test</th:block>

<th:block th:unless=”${test == 1}”>test</th:block>

このようにしたらtestの値により条件分岐を行うことが出来ます。

HTML上では該当しない値は出力されないので

IDを複数付与することも可能です。

<th:block id=”test” th:if=”${test == 1}”>test1</th:block>

<th:block id=”test” th:unless=”${test == 1}”>test2</th:block>

testが1なら上記の内容だったらtest1だけの出力になります。

JsとかでID名を取得して処理する場合でも同じID名を付与することができるので慣れれば楽です。

springとタイムリーフを使ってみて

タイムリーフを使ってみて、

タイムリーフ内に複雑な処理をあまり行わない方が良いのかなと個人的に思いました。

私自身Javaを使用することが多いのですが

処理を追う際にタイムリーフだと正確に追いきれないです。

javaのデバックで処理を追う方が簡単に思いました。

特にこのような記事を検索している方はJavaに処理を書き

あくまで補助くらいの感じで使用する方が便利かなと思います。

エラーを起こした際などの修正などの速さが個人的にはJavaの方が早かったのでこのような追記しました。

あくまで参考程度に聞いてもらえれば助かります。

まとめ

まとめ

今回のまとめです。

タイムリーフを使用して条件分岐をする方法を紹介しました。

あまり複雑な処理をするとエラー箇所がわかりにくくなるので

個人的には処理はコントローラーでまとめてしまうのが良いと思います。