해결된 질문
작성
·
473
3
폼 객체를 이렇게 이해한 것이 맞는지 !!
@GetMapping("/members/new")
public String createForm(Model model) {
model.addAttribute("memberForm",new MemberForm());
return "members/createMemberForm";
}
GET 요청시 비어있는 MemberForm 객체를 모델에 담아서 뷰(템플릿)에 전달
@PostMapping("/members/new")
public String create(@Valid MemberForm form , BindingResult result) {
클라이언트가 폼에 작성한 필드들을 Submit 할때 POST 요청되어
템플릿에서 각 필드의 값들을
컨트롤러에서 넘겨준 모델의 form 객체에 set 한다
Address address = new Address(form.getCity(), form.getStreet(), form.getZipcode());
Member member = new Member();
member.setName(form.getName());
member.setAddress(address);
memberService.join(member);
form 객체는 이제 값이 설정되었으니
Member 객체를 생성하고 이 member 의 필드들을
form 객체에서 가져와서 set 하고 join(회원가입)을 완료한다 .
강의에서 말하는
폼 객체 vs 엔티티 직접 사용
지금은 서비스가 작아서 폼 객체를 사용하는 것이 더 번거러운 일인듯 한데
더 복잡해지면 엔티티를 유지보수하기 어려워지기 떄문에
엔티티는 화면을 위한 로직은 없어야 한다.
항상 친절한 답변 주셔서 감사합니다 !