Spring MVCのModelを使用する方法
Spring MVCでは、Modelはデータをカプセル化してビューに渡すインターフェースです。
- コントローラのメソッドパラメータにModelパラメータを宣言すれば、Spring MVCがModelインスタンスをそのパラメータに自動的に渡します。
@RequestMapping("/example")
public String example(Model model) {
model.addAttribute("message", "Hello World!");
return "example";
}
上記の例では、addAttributeメソッドを呼び出して「message」という名前のプロパティをモデルに追加し、その値を「Hello World! 」に設定します。その後、ビュー名「example」を返して、Spring MVCが使用すべきビューを通知します。
- @ModelAttribute アノテーションを使用する: @ModelAttribute アノテーションは、メソッドパラメーターまたはメソッドに使用でき、属性を Model に追加します。
@ModelAttribute("message")
public String message() {
return "Hello World!";
}
@RequestMapping("/example")
public String example() {
return "example";
}
上記の例では、メソッドに @ModelAttribute アノテーションを使用し、属性名として “message” を指定することで、”Hello World!” という値を Model に追加しています。そして、ビュー上で “#{message}” を使用することでその属性の値を表示しています。
- ModelとViewの情報を保持するクラスで、コントローラのメソッド内からModelAndViewオブジェクトを作成し、属性やビュー名を設定できます。
@RequestMapping("/example")
public ModelAndView example() {
ModelAndView modelAndView = new ModelAndView("example");
modelAndView.addObject("message", "Hello World!");
return modelAndView;
}
上記の例では、ModelAndViewオブジェクトを作成し、addObjectメソッドを呼び出すことで「message」という属性をModelに追加しています。そして、ビュー名を「example」に設定することで、Spring MVCが使用するビューを指示しています。
いずれの方法を使用しても最終的にはモデル内の属性をビューに渡すことになり、ビューではEL式やJSTLタグを利用してそれらの属性の値にアクセスして表示できます。