Thymeleafでtextareaを使用した実装
Thymeleafでtextareaを使用する場合の実装例を紹介します。
ここでは、textareaの内容をフォームで送信するための基本的なコードと、コントローラの処理を含めた例を示します。
1. HTML(Thymeleafテンプレート)
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>Textarea Example</title> </head> <body> <form th:action="@{/submit}" th:object="${form}" method="post"> <label for="description">Description:</label> <textarea id="description" name="description" th:field="*{description}" rows="4" cols="50"></textarea> <br/> <button type="submit">Submit</button> </form> </body> </html>
2. コントローラ
import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller @RequestMapping("/submit") public class TextareaController { @GetMapping public String showForm(Model model) { // フォーム用のオブジェクトをモデルに追加 model.addAttribute("form", new FormData()); return "textarea"; // Thymeleafテンプレートの名前 } @PostMapping public String submitForm(@RequestParam String description, Model model) { // 送信されたデータを処理 System.out.println("Received description: " + description); // フォーム用のオブジェクトをモデルに追加 model.addAttribute("form", new FormData(description)); return "result"; // 結果表示用のテンプレートにリダイレクト } }
3. FormDataクラス
public class FormData { private String description; public FormData() {} public FormData(String description) { this.description = description; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
この例では、textareaの内容を送信するためのフォームを作成しています。
textareaの内容はdescriptionという名前で送信されます。
コントローラでは、その内容を受け取り、処理しています。
フォームのデータはFormDataというクラスにマッピングされ、HTMLテンプレートではThymeleafのth:fieldを使ってバインディングしています。