💡

#Spring Bootでフォーム送信とデータ追加を実装してみた

に公開

Spring Bootでフォーム送信とデータ追加を実装してみた

今日やったこと

  • 習慣追加画面(/habits/new)を作成
  • フォームからデータをPOST送信
  • Controllerでデータを受け取る
  • ArrayListにデータを追加
  • 一覧画面にリダイレクト

学んだこと

■ フォーム送信の流れ

HTMLで入力した値は、Controllerに送ることができる。

流れはこう。

  • 入力
  • POST送信
  • Controllerで受け取る
  • データを追加
  • 一覧に戻る

■ name属性と引数名は一致が必要

フォーム画面に入力した値が出てこずに困った。

原因はここだった。

  • HTML → name="addhabits"
  • Controller → String addhabits

👉 この名前が一致していないと値が来ない


■ redirectの意味

送信後に一覧に戻すときは、

return "redirect:/habits";

と書く。

これを使う理由は、

  • 二重送信を防ぐため
  • URLを整理するため

■ ArrayListでデータを保持

最初は List.of() を使っていたが、追加できなかった。

理由は、

  • List.of() は変更不可

代わりに、

  • ArrayList を使うことで追加できるようになった
private List<String> habits = new ArrayList<>();

Discussion