Thymeleafでオブジェクト型の変数を扱う方法
Thymeleafでオブジェクト型の変数を扱う方法を説明します。
以下は、オブジェクト型の変数をThymeleafテンプレートで使用するための基本的なサンプルです。
サンプルシナリオ
Person というクラスを持っていて、そのインスタンスをThymeleafで表示するケースを考えます。
Person クラスは次のような構造です。
public class Person { private String name; private int age; // コンストラクタ public Person(String name, int age) { this.name = name; this.age = age; } // ゲッターとセッター public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
コントローラ
SpringBootのコントローラで、Person オブジェクトをモデルに追加します。
import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class PersonController { @GetMapping("/person") public String getPerson(Model model) { Person person = new Person("John Doe", 30); model.addAttribute("person", person); return "person"; } }
Thymeleafテンプレート
person.html というテンプレートで、Person オブジェクトのプロパティを表示します。
Thymeleafのテンプレートでは、${} 記法を使ってオブジェクトのプロパティにアクセスできます。
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Person Details</title> </head> <body> <h1>Person Details</h1> <p>Name: <span th:text="${person.name}">Name</span></p> <p>Age: <span th:text="${person.age}">Age</span></p> </body> </html>
ポイント
オブジェクトのプロパティアクセス
${person.name} や ${person.age} で、person オブジェクトのプロパティにアクセスします。
モデルの属性
Model に追加された person 属性が、Thymeleafテンプレートで使用可能になります。
この方法で、Thymeleafテンプレートでオブジェクト型の変数を扱うことができます。