오봉이와 함께하는 개발 블로그
스프링 MVC 1 - 스프링 MVC 실용적인 방식 본문
728x90
스프링 MVC - 실용적인 방식
MVC 프레임워크 만들기에서 v3은 ModelView를 개발자가 직접 생성해서 반환했기 때문에 불편했다.
v4로 바꿔 개선하며 편했던 기억이 있기 때문에 변경해보자.
실무에서 주로 사용하는 방식이다.
SpringMemberControllerV3
@Controller
@RequestMapping("/springmvc/v3/members")// @RequestMapping 클래스 레벨과 메서드 레벨 조합
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);
System.out.println("member = " + member);
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 파라미터
save(), members()를 보면 Model을 파라미터로 받는다.
스프링MVC도 이런 편의 기능을 제공한다.
ViewName 직접 반환
뷰의 논리 이름을 반환할 수 있다.
@RequestParam 사용
스프링은 HTTP 요청 파라미터를 @RequestParam으로 받을 수 있다.@RequestParam("username")
은 request.getParameter("username")
과 거의 같은 코드라고 생각하자.
GET 쿼리 파라미터, POST Form 방식을 모두 지원한다.
@RequestMapping - > @GetMapping, @PostMapping
@RequestMapping
은 URL만 매칭하는 것이 아니라 HTTP Method도 함께 구분할 수 있다.
예를 들어 URL이 /new-form이고 HTTP Method가 GET인 경우를 모두 만족하는 매핑을 하려면 다음과 같이 처리하자.
@RequestMapping(value = "/new-form", method = RequestMethod.GET)
위 코드를 @GetMapping
, @PostMapping
으로 편리하게 사용할 수 있다.
Get, Post, Put, Delete, Patch 모두 어노테이션이 있다.
@GetMapping
으로 지정하고 POST로 해당 URL에 접속하면 에러가 뜬다.
출처 : 인프런 김영한 지식 공유자님 강의 - 스프링 MVC 1편 백엔드 웹 개발 핵심 기술
728x90
'BE > Spring' 카테고리의 다른 글
스프링 MVC 1 - 로깅 간단히 알아보기 (0) | 2022.08.13 |
---|---|
스프링 MVC 1 - 프로젝트 생성 (0) | 2022.08.13 |
스프링 MVC 1 - 스프링 MVC 컨트롤러 통합 (0) | 2022.08.12 |
스프링 MVC 1 - 스프링 MVC 시작하기 (0) | 2022.08.12 |
스프링 MVC 1 - 뷰 리졸버 (0) | 2022.08.12 |
Comments