MENU

【SpringBoot】Thymeleafで使用する記号の用途についてまとめてみた

こんにちは、くまごろーです。
SprinBootの勉強を進めていると、Thymeleafで「$」とか「@」とか「*」とか、色んな記号に出会います。
色々学んでいくうちに、記号の用途の違い等とよくわからなくなってきたので、メモとしてここでまとめておこうと思います。


○ コントローラで追加したオブジェクトの値を表示する。(${...})

<p th:text="${member.name}"></p>

${...}(変数式)で指定する。



○ コントローラで追加したオブジェクトの値を表示する。(*{...})

<form th:action="@{/input}" th:object="${member}" method="post">
<label for="name">名前:</label>
<input type="text" th:field="*{name}">
</form>

特定のオブジェクトをタグで指定すると、そのタグで囲んだ内部では「*{フィールド名}」で値を表示できる。



○ フォームのpost先を指定する。(@{...})

<form th:action="@{/confirm}" method="post">
</form>

@{...}(リンクURL式)で指定する。



○ コントローラで追加した値をまとめて表示する。([[${...}]])

<span th:inline="text">
氏名: [[${user. name}]]<br>
年齢: [[${user. age}]]<br>
住所: [[${user. address}]]<br>
</span>

タグで囲むと、その内部では[[${...}]]で値にアクセスできる。



○ 別ファイルで定義したメッセージを表示する。(#{...})

<messages_ja.properties>

inquiry = お問い合わせ 
name = お名前
email = Email
register = 登録 
confirmationMessage = 以下の内容で登録が完了しました

<index.html>

<h4 th:text="#{inquiry}"></h4> 
<label th:text="#{name}"></label>

#{...}(メッセージ式)を使用して、プロパティファイルに設定した値を表示する。
 
 
 
IoCコンテナが管理しているオブジェクト(Bean)を参照する。(${@...})

IoCコンテナが管理しているオブジェクトを、Beanと呼ぶ。リポジトリ等Beanに登録されているものは、以下の様に参照する。

<th:block th:each="member : ${@memberRepository.findAll()}">
<option th:value="${member.name}" th:text="${member.age}">
</option></th:block>

memberRepository. findAll()で全てを取得し、1 件ずつnameとageを設定している。

 
 
● 参考ページ
Thymeleafチートシート - Qiita
https://shimapuku.com/programming/java-basic/spring-thymeleaf#toc2
Thymeleafの標準式構文 | Java好き