MVC 프레임워크를 만들때 ModelView를 개발자가 직접 생성해서 반환했기 때문에
v4를 만들어 실용적으로 개선했었다.
스프링 MVC는 개발자가 편리하게 개발할 수 있도록 수 많은 편의 기능을 제공한다.
실무에서 주로 쓰는 방식을 공부하였다.
package hello.servlet.web.springmvc.v3;
import hello.servlet.domain.member.Member;
import hello.servlet.domain.member.MemberRepository;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Controller
@RequestMapping("springmvc/v3/members")
public class SpringMemberControllerV3 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@GetMapping("/new-form")
public String newForm(){
return "new-form";
}
@GetMapping
public String members(Model model) {
List<Member> members = memberRepository.findAll();
model.addAttribute("members",members);
return "members";
}
@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(), members()를 보면 Model을 파라미터로 받는 것을 확인할 수 있다.
스프링 MVC도 이런 편의 기능을 제공한다.
ViewName 직접 반환
뷰의 논리 이름을 반환할 수 있다.
@RequestParam 사용
스프링은 HTTP 요청 파라미터를 @RequestParam으로 받을 수 있다.
@RequestParam("uesrname)은 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 으로 더 편리하게 사용할 수 있다.
'웹프로그래밍 > 스프링 MVC' 카테고리의 다른 글
| 38. 로깅 간단히 알아보기 (0) | 2022.04.02 |
|---|---|
| 37. 프로젝트 생성 (0) | 2022.04.02 |
| 35 스프링 MVC - 컨트롤러 통합 (0) | 2022.04.01 |
| 34. 스프링 MVC - 시작하기 (0) | 2022.04.01 |
| 33. 뷰 리졸버 (0) | 2022.03.31 |