작성
·
530
3
@GetMapping("/members/new")
public String createForm(Model model){
model.addAttribute("memberForm", new MemberForm());
return "members/createMemberForm";
}
model.addAttribute를 사용하지 않고 일단 createMemberForm.html로 간 뒤에 form post로 데이터를 넘기면
@PostMapping("/members/new") 컨트롤러가 비즈니스로직을 수행하면 되는 것 아닌가요?
createMemberForm이라는 html에 new MemberForm()으로 객체를 넘길 수 있는 내부적인 원리가 궁금합니다.
답변 1
3
안녕하세요. taeu kim님, 공식 서포터즈 OMG입니다.
model.addAttribute("memberForm", new MemberForm());
를 작성하는 이유는 아래와 같습니다. 해당 코드를 삭제하고 실행 시 에러가 발생합니다.
(코드와 같이 new로 생성한 빈 객체라도 넘겨야 오류가 발생하지 않습니다.)
직접 확인하여 어떤 에러가 발생하는지 확인해보시면 좋을 것 같아요,.
1번의 기능을 위해 타임리프와 스프링MVC에서 제공합니다.
스프링MVC에서 Model의 동작원리는 영한님의 MVC1편-Model 추가 - v3 를 참고해주세요.
감사합니다.