스프링/3. 스프링 MVC

35. 통합

sdafdq 2023. 8. 10. 00:14
@Controller
@RequestMapping("springmvc/v2/members")
public class SpringMemberController {
    MemberRepository memberRepository = MemberRepository.getInstance();

    @RequestMapping("/save")
    public ModelAndView save(HttpServletRequest request ){
        ModelAndView mv = new ModelAndView("save-result");
        Member member = new Member(request.getParameter("username"), Integer.parseInt(request.getParameter("age")));

        Member savedMember = memberRepository.save(member);
        mv.getModel().put("member",savedMember);
        return mv;
    }

    @RequestMapping
    public ModelAndView findAll(){
        List<Member> members = memberRepository.findAll();
        ModelAndView mv = new ModelAndView("members");
        mv.addObject("members", members);
        return mv;
    }

    @RequestMapping("/new-form")
    public ModelAndView newMemberForm(){
        System.out.println("SpringMemberFormControllerV1.process");
        return new ModelAndView("new-form");
    }
}

이제 메소드 명을 다르게 할 수 있기에, 결이 같다면 통합할 수 있다.

게다가, 공통맵핑을 할 수 있다.

 

클래스 단위에

@RequestMapping("springmvc/v2/members")

해주면, 

클래스단위 @RequestMapping + 메소드 단위 @RequestMapping 추가가 된다.

 

그래서 아예 findAll은 우리가 uri 짤 때 리소스 기준으로 짜고, 그래서 사실 /members만 있어도 되기에 다른 것들보다 상위에 있다. 그래서 저건 아예 추가 안해서 클래스 단위 호출되면 딱 저게 호출된다.

 

 

 

'스프링 > 3. 스프링 MVC' 카테고리의 다른 글

37. 스프링MVC 시작  (0) 2023.08.11
36. 실용적인 형식  (0) 2023.08.11
34. 스프링 MVC  (0) 2023.08.09
33. 뷰 리졸버  (0) 2023.08.09
32. 핸들러매핑, 핸들러어댑터  (0) 2023.08.09