エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Springboot】ControllerでModelAndViewを戻り値であえて使う理由【983日目】

Modelでもいいが、あえてModelAndViewを使う

public String index(Model model) {
  return "/index.html";
}
public ModelAndView index(ModelAndView mav) {
  mav.setViewName("/index.html");
  return mav;
}

このように2つの書き方があるが、あえて後者を選んでいます。
なぜ後者を選ぶか

戻り値にModelがある

戻り値にModelがあるのが違い。

Modelに対して何かを行いたい時、

引数に取ったModelに対して何かをするのではなく、
戻り値に返すModelを目的のものに変える

という視点に変わります。

Modelに渡すものが正しいModelになるようになれば良いので、
その過程でModelが破棄されようが、最終的に渡されるModelAndViewが正しければよくなります