inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

주문 목록 검색, 취소

주문 목록 검색 컨트롤러에서 @ModelAttribute가 적용된 orderSearch 질문

387

kkt169

작성한 질문수 47

0

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

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

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

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
안녕하세요!
주문 목록 검색 요청을 처리하는 OrderController의 orderList() 메서드 관련 질문이 있습니다.
 
제가 findOrders()내부 findAllByString() 로직을 이해한게 아니여서, orderList()메소드가 이런식으로 동작하는게 맞는지 궁금합니다.
 
이 메소드는 다음의 3가지 상황에 의해 호출 될 것 같은데요,
1. 상품 주문 화면에서 상품 주문 후, 주문을 처리하는 order() 메소드에 의한 리다이렉션 요청을 받을 때
2. 홈 화면에서 순수하게 주문 내역을 클릭하였을 때
3. 주문 내역 화면에서, 회원명 or 주문상태를 조건으로 하여 검색할 때
 
그래서 상황 1,2와 같은 경우에는 모든 주문 내역을 다 보여주고, 상황 3의 경우에는 조건에 따른 주문내역만을 보여주도록 동작해야 할 것 같습니다.
 
이때 실제 코드에서는 OrderService의 findOrders() 메소드 호출만으로 위 3가지 상황을 모두 커버하고 있는데요,
 
그렇게 되면 () 상황 1,2의 경우에는
orderList()의 @ModelAttribute orderSearch에 null이 대입되어 모든 주문 내역이 다 조회되는 것 같습니다.
그리고 상황 3의 경우에는 선택한 조건에 따른 orderSearch 객체가 form태그에 의해 요청파라미터로 념겨져와서,
orderList()의 파라미터 중 orderSearch가 받아 조건에 따른 주문 내역이 조회되는 것 같은데,
제가 맞게 이해한건지 궁금합니다.
 
그리고 특히 상황 3의 경우 선택한 회원명or주문상태에 따른 orderSearch객체를, form태그가 생성하여 보내주는 것이 맞는지 궁금합니다.
 
긴 질문 읽어주셔서 감사합니다!
 
 

spring-boot java 웹앱 JPA spring

답변 1

1

나무늘보

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

상황 1,2의 경우 OrderSearch가 null이 된다기 보단 OrderSearch의 필드인 memberName과 orderStatus 가 null이 됩니다.

그래서 이를 service 등에서 null 인경우에 대한 처리등을 해야 합니다. 만약 폼에서 해당 값들이 넘어왔다면 null이 아닌 값들이 들어가 있을테니까요.

 

상황3.의 경우 form 태그가 생성하여 준다기 보단, 폼은 사용자가 입력한 값들을 일정한 양식에 맞게 서버에 요청하게 됩니다. 그 방법은 크게 GET, POST가 있는데, GET은 url에 폼값을 전달하고 POST는 http 바디에 담아 전달합니다. 그러면 스프링 프레임워크가 이러한 값들을 OrderSearch 객체를 생성하고 setter를 이용하여 값을 담게 됩니다. 

정리하면, 맞게 이해하셨고, OrderSearch는 스프링 프레임워크에서 생성합니다.

감사합니다.

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

27

1

sdk 설정 오류

0

67

2

오탈자 - @Transactional

0

62

1

src/test/resources 테스트 경로 문제

0

56

1

상품 등록후 H2 db 출력 순서 바꿀 수 있나요?

0

70

1

MemberRepositoryTest 실행오류

0

90

1

boot 4.x >>> trasasction rolled back log & p6spy(영한님, 수업 자료 업데이트 해주시면 감사하겠습니다!!)

1

195

2

강의 마지막 QueryDSL 사용 부분 질문있습니다

1

153

2

클라이언트에서 isbn과 author 수정 요청을 한 경우에 대해 질문드립니다.

0

56

1

도메인 모델 패턴 vs 트랜잭션 스크립트 패턴

0

80

1

기본 생성자

0

67

1

h2 DB 연결시 jdbc url 변경 이유가 궁금합니다.

0

107

1

멤버서비스테스트 부분에서 막힙니다.

0

173

4

실무에서도 EntityManager를 이용해서 많이 작업하는 편일까요?

0

124

1

초반에 h2 다운로드 과정 꼭 필요한가요?

0

129

2

자신 필드에도 get으로 접근하는 이유가 있을까요?

0

121

1

24분 27초 연관관계 편의 메서드 위치

0

118

1

단건 주문만 가능하게 한건 의도한 부분이신가요?

0

114

2

빌드 툴, Gradle

0

63

1

h2연결은 된 것 같은데 엔티티 테이블까지 작성 후 확인해보아도 테이블이 안보입니다

0

81

2

Repository에서 EntityManager 주입 방식 차이

0

97

1

롬복과 사용자 정의 setter 메서드

0

77

1

주문 목록 조회 fetch join 질문드립니다

0

91

1

dirty checking 질문드립니다.

0

86

1