💡
#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