강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

sy k님의 프로필 이미지
sy k

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

주문 목록 검색, 취소

@ModelAttribute 어노테이션 관련 질문드립니다

해결된 질문

작성

·

289

1

코드를 보면, orderSearch 를 매개변수로 받아와서 List (orders)로 만든 후 model 을 이용해 html 에 전달하는것으로 이해 하였습니다.

그런데 여기서 @ModelAttribute 의 역할이 이해되지 않습니다. 이 어노테이션을 쓰지 않으면 데이터가 model을 통해 넘어가지 않는것일까요?

@GetMapping("/orders")
    public void orderList(@ModelAttribute("orderSearch") OrderSearch orderSearch, Model model) {
        List<Order> orders = orderService.findOrders(orderSearch);
        model.addAttribute("orders", orders);
    }

답변 1

3

안녕하세요, sy k 님! 공식 서포터즈 codesweaver 입니다.

@ModelAttribute 는 클라이언트의 폼 전송 혹은 Json 값을 DTO 객체에 매핑합니다.

가령 클라이언트가 <input type="text" name="userId" /> 양식에 'hello'를 작성해서 보냈다면

스프링 프레임워크가 OrderSearch 의 멤버 변수에 setUserId(); 메서드가 있는지 확인하고 있다면 값을 설정합니다. 그러면 컨트롤러에서는 OrderSearch 객체를 이용해 값 처리를 간편하게 할 수 있지요.



감사합니다.

sy k님의 프로필 이미지
sy k

작성한 질문수

질문하기