springbootの開発をしていて、思ったことを書き留めておこう。
データの持ち運びはformで行うこと
何を言っているのかというと、DBから取得した値をresultなどの変数に入れて
model.addAttribute("result", result);
なんてしていると、画面で入力エラーなどが起こった場合に消えてしまい、そのたびに再取得する必要が出てくる。
当然、上記のようなことをしていると入力エラー時の処理を書くたびに意識しないといけないし、当然取得漏れなどから不具合につながりやすい。
formに入れておけば再取得の必要が無く、使いまわせる。
登録・更新の切り替えは、DBから取得したformの中のデータで行う
登録・更新を行う画面は編集画面として1つのhtmlで行うことが多いかと思うが、登録時と更新時で登録・更新ボタンの表示や処理を切り替える必要が出てくる。
springbootならthymeleafを使うことが多いと思うが、その時に上記のresultなどで判断していると、先述の入力エラー時等が起きた際に登録・更新の切り替えに難儀する。
そのためDBで取得した値をformに入れて、それを使うのが確実だろう。