[Spring MVC] Spring MVC 컨트롤러 통합 - V2
컨트롤러 통합
V1의 @RequestMapping
이 클래스 단위가 아니라 메서드 단위에 적용되어 있기 때문에, 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다.
SpringMemberControllerV2
/**
* 클래스 단위 -> 메서드 단위
* @RequestMapping 클래스 레벨과 메서드 레벨 조합
*/
@Controller
@RequestMapping("/springmvc/v2/members")
public class SpringMemberControllerV2 {
private MemberRepository memberRepository = MemberRepository.getInstance();
@RequestMapping("/new-form")
public ModelAndView newForm() {
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 mav = new ModelAndView("save-result");
mav.addObject("member", member);
return mav;
}
}
조합
컨트롤러 클래스를 통합하는 것을 넘어 조합도 가능하다.
다음과 같이 클래스 레벨에 @RequestMapping
을 두면 메서드 레벨과 조합이 된다.
@Controller
@RequestMapping("/springmvc/v2/members")
public class SpringMemberControllerV2 {}
조합 결과
- 클래스 레벨
@RequestMapping("/springmvc/v2/members")
+- 메서드 레벨
@RequestMapping("/new-form")
/springmvc/v2/members/new-form
- 메서드 레벨
댓글남기기