Spring

SpringにおけるModelとModelAndViewの違い

SpringにおけるModelとModelAndViewの違いをメモしておきます。

ModelとModelAndViewの違い

両者の違いは以下のとおりです。利用の仕方が異なるだけで、どちらを使っても問題ありません。

これだけだとイメージしづらいかと思うので、ControllerクラスでModelとModelAndViewそれぞれを使って、Thymeleafを利用したテンプレート(index.html)に値を渡すプログラムを作ってみます。結果はどちらも同じです。

index.html

Modelの使用例

引数にModelを指定し、addAttribute("値の名前", "値")で値を設定し、戻り値としてテンプレート名(index)を返します。

ModelAndViewの使用例

引数にModelAndViewを指定し、addObject("値の名前", "値")で値を、setViewName("テンプレート名")でテンプレート名を設定します。戻り値として、ModelAndView自身を返します。

まとめ

SpringにおけるModelとModelAndViewの違いでした。個人的にはすっきり書けるModelが好みです。

参考リンク

-Spring

© 2024 Reasonable Code