인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

김은재님의 프로필 이미지

작성한 질문수

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

주문 목록 검색, 취소

질문 있습니다.

작성

·

148

1

위 그림에서 검색버튼 클릭 후 OrderController의@PostMapping("/orders)로 가는게 맞나요?

form 안에 action태그가 없길레 질문 드려봤습니다.

//추가(2번째 그림 참조 부탁드립니다.)

@ModelAttribute의 동작원리에대해 질문드립니다.

이 로직에서 @ModelAttribute는 뷰단의 검색조건에 입력되어 있는 데이터들을 OrderSearch클래스에 매핑하고 orderSearch를 파라미터로 넘겨서 List를 받아온 뒤, @ModelAttribute는 model.addAttribute를 한 것과 동일한 실행결과를 가져오기 때문에 검색데이터를 검색조건(InputBox)에 뿌려 줄 수 있는건가요?

답변 2

3

OMG님의 프로필 이미지

답변 추가 보충합니다.

form 태그에서 action을 지정하지 않을 경우에 대해 w3schools과 mdn, 구글 검색 등으로 찾아보았는데

명확한 설명을 찾지 못해 대략적으로 동작을 테스트 해봤습니다.

로그 출력(4줄)은

1. http:localhost:8080/ 접속

2. Input으로 '1'과 'root로 접속' 입력

3. http:localhost:8080/path 접속

4.  Input으로 '2'와 'pathvariable+requestparam' 입력

으로 출력되는 것이고,

이로 추론해 볼 수있는것은 form에 action이 지정되어 있지 않을 경우 자신을 요청한 url에 input에서 입력한 값을 쿼리 스트링에 담아 요청한다는 것입니다.

0

OMG님의 프로필 이미지

안녕하세요.

Q. 위 그림에서 검색버튼 클릭 후 OrderController의@PostMapping("/orders)로 가는게 맞나요?

-> 강의 기준 OrderController @GetMapping(value = "/orders")으로 가게 되어 있습니다.

Q. 이 로직에서 @ModelAttribute는 뷰단의 검색조건에 입력되어 있는 데이터들을 OrderSearch클래스에 매핑하고 orderSearch를 파라미터로 넘겨서 List를 받아온 뒤, @ModelAttribute는 model.addAttribute를 한 것과 동일한 실행결과를 가져오기 때문에 검색데이터를 검색조건(InputBox)에 뿌려 줄 수 있는건가요?

-> 이해하신 대로 @ModelAttribute로 인하여 OrderSearch를 Model에 자동으로 넣어주었기 때문에 OrderSearch의 프로퍼티인 OrderSearch를 사용 할 수 있는 것입니다.

====

form 태그 안에 action이 없는 경우 해당 페이지를 렌더링한 요청을 재 호출하는 것이 아닌가 예상하는데 정확하지는 않습니다..