「Spring MVC」コントローラ(Controller)を実装する

環境

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
jdk 1.8
Eclipse IDE 4.14.0
Spring 5.3.8
jdk 1.8 Eclipse IDE 4.14.0 Spring 5.3.8
jdk 1.8
Eclipse IDE 4.14.0
Spring 5.3.8

書式
1.@Controller

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public @interface Controller
アノテーション付きのクラスが「コントローラー」(たとえば、Web コントローラー)であることを示します。
public @interface Controller アノテーション付きのクラスが「コントローラー」(たとえば、Web コントローラー)であることを示します。
public @interface Controller
アノテーション付きのクラスが「コントローラー」(たとえば、Web コントローラー)であることを示します。

2.@RequestMapping

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public @interface RequestMapping
Web リクエストを柔軟なメソッドシグネチャーを持つリクエスト処理クラスのメソッドにマッピングするためのアノテーション。
public @interface RequestMapping Web リクエストを柔軟なメソッドシグネチャーを持つリクエスト処理クラスのメソッドにマッピングするためのアノテーション。
public @interface RequestMapping
Web リクエストを柔軟なメソッドシグネチャーを持つリクエスト処理クラスのメソッドにマッピングするためのアノテーション。

3.Model addAttribute(String attributeName,@Nullable Object attributeValue)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
パラメーター:
attributeName - モデル属性の名前 (null)
attributeValue - モデル属性値 (null にすることができます)
パラメーター: attributeName - モデル属性の名前 (非 null) attributeValue - モデル属性値 (null にすることができます)
パラメーター:
attributeName - モデル属性の名前 (非 null)
attributeValue - モデル属性値 (null にすることができます)

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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";
}
}
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"; } }
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