カテゴリ: Thymeleaf 更新日: 2025/12/16

Thymeleaf テンプレートの基本構成をマスターしよう

Thymeleaf テンプレートの基本構成をマスターしよう
Thymeleaf テンプレートの基本構成をマスターしよう

新人と先輩の会話形式で理解しよう

新人

「Spring BootでThymeleafを使って、テンプレートを作成する方法を知りたいです!」

先輩

「Thymeleafは、HTMLをテンプレートとして扱える便利なライブラリだよ。Spring Bootと一緒に使うと、画面表示を効率的に作れるんだ。」

新人

「なるほど!具体的にどうやって導入するんですか?」

先輩

「それじゃあ、まずはThymeleafの基本から解説していこう。」

1. Thymeleafとは何か?

1. Thymeleafとは何か?
1. Thymeleafとは何か?

Thymeleafは、JavaのWebアプリケーションでよく使われるテンプレートエンジンです。Spring Bootと一緒に利用することで、サーバー側で動的にHTMLを生成できます。ThymeleafはHTMLファイルをテンプレートとして扱い、動的なデータを画面に表示する仕組みを提供します。Thymeleafの特徴として、ブラウザで直接HTMLを開いても表示が崩れにくく、実際の画面イメージを確認しながら開発できる点があります。

Spring BootとThymeleafを使うことで、コントローラから渡されたデータを画面に埋め込みながら、HTML構造をそのまま使うことができます。例えば、ユーザーの名前を動的に表示したり、条件に応じて表示内容を切り替えたりすることが簡単にできます。Spring Bootでは、Thymeleafを組み合わせることで、効率よく動的なWebページを作ることができます。

Thymeleafは、JavaのWeb開発における重要な役割を担っていて、今では多くの企業や個人開発者が採用しています。初心者にとっても、HTMLとJavaの連携を理解しやすく、学習を進めやすい技術です。

2. Spring BootプロジェクトにThymeleafを導入する流れ

2. Spring BootプロジェクトにThymeleafを導入する流れ
2. Spring BootプロジェクトにThymeleafを導入する流れ

ThymeleafをSpring Bootプロジェクトに導入する手順を、Pleiadesを使って詳しく説明します。まずは、Pleiadesで新しいSpring Bootプロジェクトを作成しましょう。Pleiadesは、Eclipseベースの統合開発環境で、初心者でも扱いやすいツールです。

1. Pleiadesを起動したら、「新規」メニューから「Springスタータープロジェクト」を選択します。次に、プロジェクト名やパッケージ名を入力します。ここでは、Gradleをビルドツールとして選択します。PleiadesはGradleにも対応しているので安心です。

2. プロジェクト作成時に表示される「依存関係」の画面で、「Thymeleaf」を選択します。Pleiadesの便利な機能で、チェックを入れるだけで必要な依存関係が追加されます。

3. プロジェクトが作成されたら、実際にThymeleafの設定が反映されているか確認してみましょう。Spring Bootは自動的にThymeleafの設定を行ってくれるので、特別な設定ファイルを作成する必要はありません。

例えば、Gradleのbuild.gradleには、以下のようにspring-boot-starter-thymeleafが追加されています。


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

これで、Spring BootプロジェクトにThymeleafを導入する準備が整いました。次のステップでは、実際にHTMLテンプレートを配置して、動的な画面を作る方法を見ていきましょう。

3. Thymeleafテンプレートの基本的な構成

3. Thymeleafテンプレートの基本的な構成
3. Thymeleafテンプレートの基本的な構成

Thymeleafテンプレートを使うには、HTMLファイルを専用の場所に配置する必要があります。Spring Bootでは、プロジェクト直下のsrc/main/resources/templatesフォルダにHTMLファイルを置くだけで、テンプレートとして自動的に認識されます。拡張子は必ず.htmlにしてください。

この場所にファイルを置くことで、GradleやPleiadesの構築後に特別な設定をせずともThymeleafが画面として利用できるようになります。例えば、home.htmlという名前で下記のようなファイルを用意します。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>ホーム画面|Thymeleaf入門</title>
</head>
<body>
    <h1 th:text="${message}">こんにちは、Thymeleaf!</h1>
</body>
</html>

上記の例では、HTML内にth:text属性を使って、コントローラから渡されたmessage変数を表示する仕組みになっています。ThymeleafではこのようにHTMLをベースにして、属性を追加するだけで動的な画面が作れます。

また、Thymeleafテンプレートはブラウザで直接開いても構文エラーになりにくく、静的ページを編集しながら動作確認もできるので、初心者にとって取り扱いやすい点が魅力です。

4. コントローラでビューを返す基本的な仕組み

4. コントローラでビューを返す基本的な仕組み
4. コントローラでビューを返す基本的な仕組み

次に、@Controllerアノテーションを使ってビューを返す基本的な仕組みを確認します。Spring Bootでは、コントローラクラスでHTMLテンプレート名を返すだけで、対応するテンプレートが自動的に表示されます。


@Controller
public class HomeController {

    @GetMapping("/")
    public String home(Model model) {
        model.addAttribute("message", "ようこそ、Thymeleafの世界へ!");
        return "home";
    }
}

上記のHomeControllerでは、/というURLにアクセスされたときにhome.htmlテンプレートを返すように設定しています。Modelオブジェクトにmessageという変数を登録し、HTML側で表示できます。

この仕組みにより、Java側で処理したデータを簡単にHTMLに反映できるのがThymeleafの魅力です。コントローラは@RestControllerではなく、@Controllerを使うことで、ビュー名を返して画面表示が可能になります。

また、Pleiades上でアプリケーションを実行すれば、http://localhost:8080/にアクセスするだけで、以下のように画面が表示されます:


ようこそ、Thymeleafの世界へ!

このように、HTMLテンプレートの配置とコントローラの簡単な設定だけで、動的なWebページが動く仕組みが完成します。初心者でも数分で実行できる流れなので、まずはこの構成をマスターしましょう。

5. Thymeleafの基本構文の例(変数展開、条件分岐など)

5. Thymeleafの基本構文の例(変数展開、条件分岐など)
5. Thymeleafの基本構文の例(変数展開、条件分岐など)

Thymeleafでは、...のように変数を展開できます。以下は、コントローラで渡したメッセージとユーザー名を表示する例です。


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>サンプル画面|Thymeleaf構文例</title>
</head>
<body>
    <h1 th:text="${message}">メッセージ表示</h1>
    <p th:text="'こんにちは、' + ${userName} + 'さん!'">ユーザー名表示</p>
    <div th:if="${isLoggedIn}">
        <p>現在ログイン中です。</p>
    </div>
    <div th:unless="${isLoggedIn}">
        <p>ログインしていません。</p>
    </div>
</body>
</html>

上記では、th:textでメッセージやユーザー名を表示し、th:ifth:unlessでログイン状態による表示切替をしています。これがThymeleafの基本構文です。

6. よくあるエラーと解決方法

6. よくあるエラーと解決方法
6. よくあるエラーと解決方法

Thymeleafを使っていてよく出るエラーには、以下のようなものがあります。

① テンプレートが見つからないエラー

TemplateInputException: Error resolving templateというエラーが出る場合、HTMLファイルがsrc/main/resources/templatesにないか、拡張子が.htmlではない可能性があります。ディレクトリと拡張子を再確認してください。

② 変数がnullの場合のエラー

EL1008E: Variable or field 'xxx'...というエラーが出る場合、コントローラで該当の変数をmodel.addAttributeできていない可能性があります。以下のように、必ず登録するようにしましょう。


@Controller
public class SampleController {

    @GetMapping("/sample")
    public String sample(Model model) {
        model.addAttribute("userName", "太郎");
        model.addAttribute("isLoggedIn", true);
        return "sample";
    }
}

③ HTMLにtypoがある場合

例えば、th:testのように誤って書いた場合、正しく処理されずに画面が真っ白になったりエラーになります。属性名を正しく書くように注意してください。

④ Gradleの依存関係が不足している

稀に、spring-boot-starter-thymeleafが追加されていない場合があります。build.gradleを開いて、以下のように確認しましょう。


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

7. これからThymeleafを学ぶためのおすすめの勉強方法

7. これからThymeleafを学ぶためのおすすめの勉強方法
7. これからThymeleafを学ぶためのおすすめの勉強方法

Thymeleafをさらに深く学ぶために、以下のステップをおすすめします。

① 公式リファレンスを読む

Thymeleaf公式サイトには、構文や機能が網羅的にまとめられています。まずは基本構文や属性の使い方を確認しましょう。

② サンプルプロジェクトを作成する

簡単な掲示板やToDoリストを作り、変数展開や条件分岐だけでなく、ループ処理やフォーム送信なども試してみましょう。

③ 練習用に他のテンプレートと比較する

FreemarkerやVelocityなど、他のテンプレートエンジンと比較することで、Thymeleafの特徴や強みを理解しやすくなります。

④ チュートリアル動画や書籍を活用する

YouTubeやUdemyなどでThymeleaf入門講座が多数あります。自分に合った形式で学んでいくとよいでしょう。

⑤ 小さなWebアプリを完成させる

学んだことを活かして、小さなWebアプリを自分で設計・実装しましょう。実際にコードを書いて動かすことで理解が深まります。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Thymeleafとは何ですか?Spring Bootで何ができるテンプレートエンジンですか?

ThymeleafはJavaアプリケーションで動的なHTMLを生成できるテンプレートエンジンです。Spring Bootと組み合わせることで、コントローラで渡したデータをHTMLに埋め込み、画面に表示できます。ブラウザで直接開いても表示が崩れにくい点も特徴です。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
SpringのWeb開発(Spring MVC)
HTTPリクエストとレスポンスの基本を完全解説!Spring MVC初心者がWeb通信の仕組みをやさしく理解
New2
Spring認証(Spring Security)
ブラウザからのフォーム送信とは?HTTPリクエストの基礎を初心者向けに解説!
New3
Thymeleaf
ThymeleafでJavaScriptコメントを正しく書こう!初心者向け徹底解説
New4
SpringのDB操作
Spring Boot + MySQLでCRUDアプリを作ろう!初心者向けにデータベース操作を完全解説
人気記事
No.1
Java&Spring記事人気No1
SpringのWeb開発(Spring MVC)
ルーティングとは?基本概念(Spring MVCのURL制御を理解)
No.2
Java&Spring記事人気No2
Thymeleaf
Thymeleaf とは?初心者向けにThymeleafの基本を徹底解説
No.3
Java&Spring記事人気No3
Springの基本
application.properties と YAML の基本をやさしく解説!初心者向けSpring Boot設定ファイル入門
No.4
Java&Spring記事人気No4
Springの基本
Spring Bootの環境変数の設定方法をやさしく解説!初心者向けapplication.propertiesの使い方
No.5
Java&Spring記事人気No5
Springの基本
Spring Bootのデフォルトログ設定を徹底解説(Logback / SLF4J)
No.6
Java&Spring記事人気No6
SpringのWeb開発(Spring MVC)
ループ処理(th:each)の基本を完全ガイド!Thymeafの繰り返し処理の使い方
No.7
Java&Spring記事人気No7
SpringのDB操作
JPAの標準クエリメソッド(findById, findAll)を完全解説!初心者でもわかるデータ取得の基本
No.8
Java&Spring記事人気No8
SpringのDB操作
@Queryを使ったカスタムクエリの作成を完全解説!Spring Data JPAでの使い方と基礎知識