인프런 커뮤니티 질문&답변
orders 페이지 접속시에 일어나는 동작 순서 질문드립니다~!
작성
·
212
0
1. "/orders" 컨트롤러 동작
일단 /orders 페이지 요청이 들어오면 @ModelAttribute로 요청파라미터값들을 OrderSearch 로 바인딩하고, 이 객체 인스턴스 orderSearch를 모델에 넣어서 orderList 템플릿에 전달된다.
2. orderList.html 템플릿 동작
모델의 객체 데이터인 orderSearch의 데이터로 form태그들을 구성하고, 검색버튼을 눌렀을 때 form태그의 데이터들이 GET 방식으로 전송된다.
3. "/orders" 컨트롤러 동작
회원명과 주문상태 데이터가 들어있는 OrderSearch로 요청파라미터값들을 바인딩, 객체 인스턴스 orderSearch를 모델에 넣어서 orderList 템플릿에 전달.
1->2->3 이런식으로 진행되는 것 같은데 처음에 데이터가 없는 상황에서 1번에서는 HTTP 요청 파라미터에는 아무런 값들이 없는데 orderList에서 form태그들을 어떻게 구성할 수 있는지 궁금합니다.
퀴즈
회원 가입 시 화면 입력 데이터를 엔티티 객체 대신 별도의 Form 객체로 받는 주된 이유는 무엇일까요?
데이터베이스 성능을 최적화하기 위해서
화면 종속적인 데이터나 유효성 검증 로직을 분리하기 위해서
JPA 영속성 컨텍스트와 직접적인 관계를 맺기 위해서
코드의 자동 생성 기능을 활용하기 위해서
답변 1
0
안녕하세요. km54277님, 공식 서포터즈 OMG입니다.
올려주신 글을 @ModelAttribute OrderSearch orderSearch 때문에 헷갈려하시는거 같아요,
처음 주문 조회 페이지(/orders)를 접속하게 되면 검색 조건은 없이 주문한 조회에 한해서 데이터들이 뿌려집니다.(전체 조회 데이터)


이 때 OrderSearch에 대한 로그를 보시면 OrderSearch 객체는 메모리 주소를 참조하고 있지만, 어떠한 값도 들어있지 않는 것을 확인하실 수 있습니다.
---
이제 검색 조건을 추가하여 조회해보면,

조회 조건이 추가되어 바인딩이 일어나는 것을 확인하실 수 있으며


위의 이미지와 같은 요청이 발생한 것을 확인하실 수 있습니다.
(크롬 - f12버튼 - Network탭)
감사합니다.





