강의

멘토링

커뮤니티

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

shj2322님의 프로필 이미지
shj2322

작성한 질문수

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

회원 등록

BindingResult 사용시 model에 값을 안넣었는데 어떻게 데이터가 유지되죠?

해결된 질문

작성

·

346

2

mvc2 편에서는

public String create(@Validated @ModelAttribute MemberForm form, BindingResult bindingResult){

여기서는

@Validated MemberForm form, BindingResult bindingResult

 

즉 ModelAttribute를 사용하고 안하고 차이가 있었는데요.

 

다음 코드 실행시 사용자 입력값이 유지되는데요

if(bindingResult.hasErrors()){
return "members/createMemberForm";
}

저는 당연히 ModelAttribute를 통해 model에 값을 담아주고 해당 html으로 리턴을 해주었기 때문에 가능하다고 생각했습니다.

그런데 이번 강의를 보면서

@ModelAttribute를 적지 않았음에도

bindingresult를 통해 이동한 페이지에서

어떻게 사용자가 적었던 memberForm값들이 유지가 되는것인가요??

답변 1

1

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

결론만 말씀드리자면 @ModelAttribute 를 생략해도 @ModelAttribute 가 붙습니다. 기본적으로 controller 단에서 argument에 어노테이션이 생략되어있을 경우 
String, int, Integer 같은 단순 타입은 @RequestParam을 붙인 것처럼 동작하고
나머지는 @ModelAttribute를 붙인 것처럼 동작합니다.

자세한 것은 영한님의 스프링 MVC 1 강의를 들어보시면 더 자세하게 설명해주십니다!

감사합니다.

shj2322님의 프로필 이미지
shj2322
질문자

감사합니다 궁금증이 해결되었습니다.

shj2322님의 프로필 이미지
shj2322

작성한 질문수

질문하기