최대 1 분 소요


실용적인 방식

MVC Framework - V3에서 ModelView를 개발자가 직접 생성해서 반환했기 때문에 불편했지만, 스프링 MVC는 개발자가 편리하게 개발할 수 있도록 많은 편의 기능을 제공한다.
실무에서는 이 방식을 주로 사용한다.

SpringMemberControllerV3

/**
 * v3
 * Model 도입
 * ViewName 직접 반환
 * @RequestParam 사용
 * @RequestMapping -> @GetMapping, @PostMapping
 */
@Controller
@RequestMapping("/springmvc/v3/members")
public class SpringMemberControllerV3 {

    private MemberRepository memberRepository = MemberRepository.getInstance();

    @GetMapping("/new-form")
    public String newForm() {
        return "new-form";
    }

    @PostMapping("/save")
    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";
    }
}

Model 파라미터
save()를 보면 Model을 파라미터로 받는 것을 확인할 수 있다.
스프링 MVC는 이런 편의 기능을 제공한다.

ViewName 직접 반환
뷰의 논리 이름을 반환할 수 있다.

@RequestParam 사용

  • 스프링은 HTTP 요청 파라미터를 @RequestParam으로 받을 수 있다.
  • request.getParameter("username") = @RequestParam("username")

@RequestMapping -> @GetMapping, @PostMapping
@RequestMapping은 URL만 매칭하는 것이 아니라, HTTP Method도 함께 구분할 수 있다.
예를 들어 URL이 /new-form, Method가 GET인 경우

@RequestMapping(value = "/new-form", method = RequestMethod.GET)

이 코드를 @GetMapping, @PostMapping으로 더 편리하게 사용할 수 있다.


<출처 : 인프런 - 스프링 MVC 1편 : 백엔드 웹 개발 핵심 기술(김영한)>

댓글남기기