「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」がレンダリングされます。

SpringMVC

Posted by arkgame