「Spring MVC」コントローラ(Controller)を実装する
環境
jdk 1.8 Eclipse IDE 4.14.0 Spring 5.3.8
書式
1.@Controller
public @interface Controller アノテーション付きのクラスが「コントローラー」(たとえば、Web コントローラー)であることを示します。
2.@RequestMapping
public @interface RequestMapping Web リクエストを柔軟なメソッドシグネチャーを持つリクエスト処理クラスのメソッドにマッピングするためのアノテーション。
3.Model addAttribute(String attributeName,@Nullable Object attributeValue)
パラメーター: attributeName - モデル属性の名前 (非 null) attributeValue - モデル属性値 (null にすることができます)
使用例
package com.arkgame.study.user; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping("user") public class UserController { // @ModeAttributeアノテーションを設定 @ModelAttribute public UserForm setUpUserForm() { UserForm form = new UserForm(); return form; } // @RequestMappingアノテーションによりマッピング @RequestMapping public String index(Model model) { return "user/index"; // (4) } // @RequestMappingアノテーションでcreateメソッドを指定 @RequestMapping("create") public String create(UserForm form, Model model) { // フォームのaddr要素をViewに渡す model.addAttribute("addr", form.getAddr()); return "user/create"; } }
結果
「xxx/user」にアクセスする場合、indexメソッドが呼ばれます。
「 WEB-INF/views/user/index.jsp」がレンダリングされます。
「xxx/user/create」にアクセスする場合、createメソッドが呼ばれます。
「WEB-INF/views/user/create.jsp」がレンダリングされます。