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

yso829612님의 프로필 이미지

작성한 질문수

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

주문 목록 검색, 취소

@ModelAttribute 질문

작성

·

407

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.

@PostMapping 에서는 @ModelAttribute가 전송내용을 담는 역할을 하는것으로 이해가 되는데

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

    return "order/orderList";
}

위 코드처럼 @GetMapping에서는 @ModelAttribute("orderSearch") OrderSearch orderSearch가 어디서 값을 받아오는지가 궁금합니다.

답변 1

0

안녕하세요. yso829612님, 공식 서포터즈 y2gcoder입니다.

@ModelAttribute는 @RequestParam과 요청 파라미터들을 바인딩 한다는 점에서 두 개의 역할이 비슷합니다. @PostMapping에서는 요청 내용에 담긴 HTTP 요청 Body 내의 formData 등을 받는다고 하면, @GetMapping에서는 쿼리 스트링의 내용을 파싱해서 담는다고 생각하시면 될 것 같습니다 :)

해당 내용은 영한님의 MVC 1편 강의에 자세하게 소개되어 있으니 기회가 되신다면 수강해보시길 추천합니다!

감사합니다.