こんにちは、くまごろーです。
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好き