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

작성자 없음

작성자 정보가 삭제된 글입니다.

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

회원 가입

질문있습니다(동작과정)

해결된 질문

작성

·

29

0

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

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

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

[질문 내용]@GetMapping("/add") public String addForm(@ModelAttribute("member")Member member, Model model){ model.addAttribute("member", member); return "members/addMemberForm"; } @PostMapping("/add") public String save(@Validated @ModelAttribute("member")Member member, BindingResult br){ if(br.hasErrors()){ return "members/addMemberForm"; } memberRepository.save(member); return "redirect:/"; } 이렇게 되어있으면

if(br.hasErrors()){ return "members/addMemberForm"; } 이 경우 즉 잘못 입력되어 @Validated에 걸린 경우 해당 틀린 폼을 유지 및 경고 창을 띄운 form을 다시 사용자에게 보여주는 것으로 알고 있는데 이 때 @GetMapping으로 다시 들어가서 폼을 사용자에게 보여주는 것인지 아니면 또 @PostMapping으로 실행되는 것인지 궁금합니다!

답변 1

0

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

말씀하신 부분은 PostMapping 내에서 처리됩니다. MVC 1편에서 학습하셨던 것과 같이반환값을 리다이렉트가 아닌 뷰 이름으로 줬기 때문입니다.
MVC 1편에서 뷰 이름으로 반환해줬을 때를 생각해보시면 좋을 것 같습니다 🙂

그리고 뷰 이름과 함께 model과 bindingresult도 그대로 넘어가기 때문에 사용자의 입력을 유지함과 동시에 오류 메시지도 처리할 수 있게 됩니다 🙂

감사합니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기