[Spring] MVC 1ํŽธ (10) - ์‹ค์šฉ์ ์ธ ์Šคํ”„๋ง MVC

2022. 3. 31. 20:52ยทSpring

๐Ÿ“Œ @RequestMapping

์Šคํ”„๋ง์—์„œ๋Š” ์• ๋…ธํ…Œ์ด์…˜์„ ํ™œ์šฉํ•œ ๋งค์šฐ ์œ ์—ฐํ•˜๊ณ  ์‹ค์šฉ์ ์ธ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ํ•ธ๋“ค๋Ÿฌ ๋งคํ•‘๊ณผ ํ•ธ๋“ค๋Ÿฌ ์–ด๋Œ‘ํ„ฐ๋Š” ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜์˜ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฐ๊ฐ RequestMappingHandlerMapping๊ณผ RequestMappingAdapter์ด๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ์ด ๋ฐฉ์‹์˜ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค!

 

ํšŒ์› ๋“ฑ๋ก ํผ
@Controller
public class SpringMemberFormControllerV1 {

   @RequestMapping("/springmvc/v1/members/new-form")
    public ModelAndView process() {
  	return new ModelAndView("new-form");  
    }
}
  • @Controller : ์Šคํ”„๋ง์ด ์ž๋™์œผ๋กœ ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ , ์Šคํ”„๋ง MVC์—์„œ ์• ๋…ธํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ธ์‹ํ•œ๋‹ค.
  • @RequestMapping : ์š”์ฒญ ์ •๋ณด๋ฅผ ๋งคํ•‘ํ•œ๋‹ค. ํ•ด๋‹น URL์ด ํ˜ธ์ถœ๋˜๋ฉด ์ด ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.
  • ModelAndView : ๋ชจ๋ธ๊ณผ ๋ทฐ ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

๐Ÿ“Œ ์ปจํŠธ๋กค๋Ÿฌ ํ†ตํ•ฉ

@RequestMapping์€ ๋ฉ”์„œ๋“œ ๋‹จ์œ„์— ์ ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์— ๊ฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

MemberController
@Controller
@RequestMapping("/springmvc/v2/members") // ์ค‘๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ!
public class SpringMemberControllerV2 {

    private MemberRepository memberRepository = MemberRepository.getInstance();

    @RequestMapping("/new-form")
    public ModelAndView newForm() { // ๋ฐ˜ํ™˜ ํƒ€์ž… ModelAndView
        return new ModelAndView("new-form");
    }

    @RequestMapping("/save")
    public ModelAndView save(HttpServletRequest request, HttpServletResponse response) {

        String username = request.getParameter("username");
        int age = Integer.parseInt(request.getParameter("age"));

        Member member = new Member(username, age);
        memberRepository.save(member);

        ModelAndView mv = new ModelAndView("save-result");
        mv.addObject("member",member);
        return mv;
    }

    @RequestMapping
    public ModelAndView members() {

        List<Member> members = memberRepository.findAll();
        ModelAndView mv = new ModelAndView("members");
        mv.addObject("members", members); // Map์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐ’์„ ๋„˜๊ฒจ์ค„ ์ˆ˜ ์žˆ์Œ

        return mv;
    }
}
  • ์ค‘๋ณต๋˜๋Š” ๋ทฐ ์ด๋ฆ„์€ ํด๋ž˜์Šค ๋ ˆ๋ฒจ์˜ @RequestMapping์— ๋‘์–ด ์ค‘๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ ์‹ค์šฉ์ ์ธ ๋ฐฉ์‹

์‹ค๋ฌด์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

@Controller
@RequestMapping(value = "/springmvc/v3/members")
public class SpringMemberControllerV3 {

    private MemberRepository memberRepository = MemberRepository.getInstance();

    @GetMapping("/new-form") // ๋ฐ์ดํ„ฐ ๋‹จ์ˆœ ์กฐํšŒ -> GET
    public String newForm() { // String์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ทฐ ์ด๋ฆ„์œผ๋กœ ์ธ์‹๋จ
        return "new-form";
    }

    @PostMapping("/save") // ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ ๋ฐœ์ƒ -> POST
    public String save(
            @RequestParam("username") String username, // ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง์ ‘ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
            @RequestParam("age") int age, // ํƒ€์ž… ๋ณ€ํ™˜๊นŒ์ง€ ์ž๋™์œผ๋กœ ํ•ด์คŒ
            Model model) {

        Member member = new Member(username, age);
        memberRepository.save(member);

        model.addAttribute("member",member);
        return "save-result";
    }

    @GetMapping
    public String members(Model model) {

        List<Member> members = memberRepository.findAll();
        model.addAttribute("members", members);
        return "members";
    }
}
  • Model ํŒŒ๋ผ๋ฏธํ„ฐ : Model์„ ๋ฉ”์„œ๋“œ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ ๋ฉ”์„œ๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ addAttribute() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ Model์— ์ €์žฅํ•œ๋‹ค.
  • ViewName : ๊ฐ ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ModelView๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋ทฐ์˜ ๋…ผ๋ฆฌ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜
  • @ReqeustParam : ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ง€์ •ํ•œ ์ด๋ฆ„์˜ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ณ€์ˆ˜๋กœ ๊ฐ€์ ธ์˜จ๋‹ค. == request.getParameter("username")
  • @GetMapping, @PostMapping : URL์„ ๋งคํ•‘ํ•˜๋Š” ๋™์‹œ์— HTTP ๋ฉ”์„œ๋“œ๋„ ํ•จ๊ป˜ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 


๊ฐ•์˜ ๋งํฌ

 

์Šคํ”„๋ง MVC 1ํŽธ - ๋ฐฑ์—”๋“œ ์›น ๊ฐœ๋ฐœ ํ•ต์‹ฌ ๊ธฐ์ˆ  - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ๋ชจ๋“  ์›น ๊ธฐ์ˆ ์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ดํ•ดํ•˜๊ณ , ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง MVC์˜ ํ•ต์‹ฌ ์›๋ฆฌ์™€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๋” ๊นŠ์ด์žˆ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค., -

www.inflearn.com

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Spring] MVC 1ํŽธ (9) - ์Šคํ”„๋ง MVC ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์กฐ  (0) 2022.03.31
[Spring] MVC 1ํŽธ (8) - MVC ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ v4,v5  (0) 2022.03.31
[Spring] MVC 1ํŽธ (7) - MVC ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ v1, v2, v3  (0) 2022.03.29
'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Spring] MVC 1ํŽธ (9) - ์Šคํ”„๋ง MVC ํ”„๋ ˆ์ž„์›Œํฌ ๊ตฌ์กฐ
  • [Spring] MVC 1ํŽธ (8) - MVC ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ v4,v5
  • [Spring] MVC 1ํŽธ (7) - MVC ํ”„๋ ˆ์ž„์›Œํฌ ๋งŒ๋“ค๊ธฐ v1, v2, v3
  • [Spring] MVC 1ํŽธ (6) - MVC ํŒจํ„ด ์ ์šฉ
suaring
suaring
๊ฐœ๋ฐœ ๊ณต๋ถ€ ๋กœ๊ทธ
  • suaring
    Sue's devlog
    suaring
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (123)
      • Algorithm (2)
      • WEB (8)
      • Spring (26)
      • Java (83)
      • Kotlin (1)
      • Database (1)
      • Infra (0)
      • Git (1)
      • devlog (1)
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
suaring
[Spring] MVC 1ํŽธ (10) - ์‹ค์šฉ์ ์ธ ์Šคํ”„๋ง MVC
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”