こんにちは、まいまいです。
JavaをSpring+Thymeleafの組み合わせで勉強しています。thymeleafを使うと、titleやpタグの中身を柔軟に変更できるから便利ですよね。しかし、pタグの中身を条件によって分岐させる方法になかなか巡り会えなかったので、この記事に残そうと思います。例えば、Aだったら「おはよう」と表示するが、そうでなければ「こんにちは」と表示する、みたいなことですね。普通にth:textやth:valueを使うと、その値が無いときは表示されなくなって困りました。
thymeleafで表示する内容を分岐させる方法
結論からいうと、三項演算子を使って表示内容を条件で分岐させることができました。例えば、以下のように分岐させたいとします。
・変数numに値がセットされていたらそれを表示。なければ5を表示。
<p th:text=”${num} != null ‘${num}’ : ‘5’ ”>
ポイントは三項演算子になります。th:ifや三項演算子ではないth:textを使ってしまうと、変数に値が入っていなかったら表示そのものが消えたり、エラーが出てしまったりするので注意です。
おまけ。th:textが効かないとき
th:textが使えないときは、th:valueにするとうまく行くことがあります。これは、textとvalueで役割が分かれているためです。考え方はHTML5のタグと同じで。value属性を使うものはth:valueにする必要が有ります。例えばinputタグやoptionタグですね。自分はこれに嵌ってしまったので気をつけてください。
まとめ
thymeleafで表示する内容を条件によって分岐させる方法をご紹介しました。三項演算子を使うことで、表示する中身を変えることができます。最後までお読みいただきありがとうございました。