Spring Boot アプリケーションに Thymeleaf を導入します。
pom.xml
pom.xml には spring-boot-starter-thymeleaf を追加します。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>example</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>example</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
</dependencies>
</project>
Controller の作成
- Controller には
@Controller
アノテーションを付けます - ハンドラメソッドではテンプレートの名前を返します
- テンプレートへパラメータを渡すには
Model
クラスを利用します
package com.example;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ExampleController {
@RequestMapping("/")
public String home(Model model) {
model.addAttribute("message", "Hello World");
return "hello";
}
}
Thymeleaf テンプレートの作成
src/main/resources/templates/hello.html
を作成します。
<!DOCTYPE html>
<html>
<body>
<span th:text="${message}"></span>
</body>
</html>
main メソッド
Spring Boot アプリケーションとして起動します。
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Example {
public static void main(String[] args) {
SpringApplication.run(Example.class, args);
}
}
動作確認
HTML が返ってくることが確認できます。
$ curl http://localhost:8080
<!DOCTYPE HTML>
<html>
<body>
<span>Hello World</span>
</body>
</html>