MVC 프레임워크 만들기에서 v3은 ModelView를 개발자가 직접 생성해서 반환했기 때문에, 불편했던 기억이 날 것이
다. 물론 v4를 만들면서 실용적으로 개선한 기억도 날 것이다.
스프링 MVC는 개발자가 편리하게 개발할 수 있도록 수 많은 편의 기능을 제공한다.
**실무에서는 지금부터 설명하는 방식을 주로 사용한다.**
**SpringMemberControllerV3**
hello.servlet.domain.member.MemberRepository;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* 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";
}
@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` 코드를 열어서 `@RequestMapping` 애노테이션을 내부에 가지고 있는 모습을 확인하자.
실행
- 등록: http://localhost:8080/springmvc/v3/members/new-form
- 목록: http://localhost:8080/springmvc/v3/members
'Spring > 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 카테고리의 다른 글
39. 로깅 간단히 알아보기 (1) | 2025.01.30 |
---|---|
38. 프로젝트 생성 (1) | 2025.01.06 |
36. 스프링 MVC - 컨트롤러 통합 (0) | 2024.12.30 |
35. 스프링 MVC - 시작하기 (0) | 2024.12.30 |
34. 뷰 리졸버 (1) | 2024.11.28 |