Thymeleafのセッションスコープについて
Thymeleafでセッションスコープを使用する方法について説明します。
セッションスコープを使うことで、ユーザーごとに異なるデータをセッションの期間中に保持することができます。
以下は、Thymeleafでセッションスコープを使用するための基本的な実装例です。
1. コントローラでセッションにデータを保存する
まず、SpringBootのコントローラでセッションにデータを保存する方法を示します。
package com.example.demo.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpSession; @Controller @RequestMapping("/session") public class SessionController { @GetMapping("/set") public String setSessionAttribute(HttpSession session) { session.setAttribute("message", "これはセッションのメッセージです"); return "redirect:/session/show"; } @GetMapping("/show") public String showSessionAttribute(HttpSession session, Model model) { String message = (String) session.getAttribute("message"); model.addAttribute("sessionMessage", message); return "sessionView"; } }
2. Thymeleafテンプレートでセッションデータを表示する
次に、Thymeleafテンプレートでセッションデータを表示する方法を示します。
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>セッションのデモ</title> </head> <body> <h1>セッションのデモ</h1> <p th:text="${sessionMessage}">ここにセッションのメッセージが表示されます</p> <a href="/session/set">セッションにメッセージを設定する</a> </body> </html>
3. 設定されたデータをセッションから削除する方法
セッションからデータを削除する場合も、HttpSessionを使用します。
@GetMapping("/remove") public String removeSessionAttribute(HttpSession session) { session.removeAttribute("message"); return "redirect:/session/show"; }
これで、以下のURLでセッションデータを設定、表示、削除することができます。
- http://localhost:8080/session/set:セッションにメッセージを設定する
- http://localhost:8080/session/show:セッションのメッセージを表示する
- http://localhost:8080/session/remove:セッションのメッセージを削除する
このようにして、ThymeleafとSpringBootを使ってセッションスコープを簡単に利用することができます。