Spring

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

Sue 2022. 3. 31. 20:52

๐Ÿ“Œ @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