Spring

Spring BootでThymeleafを使って簡単なWebページを作成する

Springの公式ドキュメントでも紹介されている、Spring Boot + Thymeleafを使ったHello, Worldを表示するだけの簡単なWebページを作成してみます。Thymeleafはテンプレートエンジンの1つで、Spring BootでView(画面)を作成するときによく利用されます。

環境

Spring BootでThymeleafを使って簡単なWebページを作成する

まずは、Spring InitializrでSpring Bootの雛形プロジェクトを作成します。「Dependencies」に「Spring Web」と「Thymeleaf」を追加して作成してやればOKです。できあがったbuild.gradleを載せておきます。

build.gradle

ここからは、実際にWebページを作成していきます。

Controllerクラスを作成する

Webページからのリクエストを受け付けるControllerクラス(GreetingController.java)を作成します。

GreetingController.java

@GetMapping("/greeting")は、/greetingへのGETリクエストを受け付けることを意味します。@RequestParamはリクエストパラメータを取得する際に使用します。今回の場合、http://localhost:8080/greeting?name=XXXXXXを取得するために使用します。

ModelはView(画面)に値を渡すためのオブジェクトです。今回は、このオブジェクトにリクエストパラメータを設定します。

戻り値は、Thymeleafのテンプレート名を設定します。例えば上記のようにgreetingを設定すると、src/main/resources/templates/greeting.htmlがViewとして使用されます。

View(画面)を作成する

Thymeleafを使用して画面を作成するときは、テンプレートとなるHTMLを用意し、そこに変数を埋め込むイメージです。

greeting.html

今回は、${name}にControllerから渡されたリクエストパラメータを埋め込みます。

アプリケーションを実行する

アプリケーションクラスはデフォルトのままでOKです。

DemoApplication.java

最後に、./gradlew bootRunコマンドを実行し、アプリケーションを実行してみます。

http://localhost:8080/greetingにアクセスすると、以下のようにHello, World!が表示されます。

http://localhost:8080/greeting?name=Taroにアクセスすると、以下のようにHello, Taro!が表示されます。リクエストパラメータ(?name=Taro)の値で表示内容が変わるのがわかるかと思います。

まとめ

Spring Boot + Thymeleafを使ったHello, Worldを表示するだけの簡単なWebページを作成してみました。ThymeleafはSpring Bootと親和性が高く、View側との値の受け渡しが簡単に行えるのがいいですね。

参考リンク

-Spring

© 2020 Reasonable Code