회원 등록
구현할 내용
화면에 랜더링할 Form 데이터 MemberForm 객체 생성 컨트롤러에서 모델이 빈 객체 memberForm을 담아서 보낸다. 이 객체는 validation 역할을 한다.
컨트롤러 컨트롤러는 서비스에 서비스를 요청한다. ① GetMapping : HTML Form 페이지 조회.
② PostMapping : HTML Form 데이터 전송받는다. @NotEmpty, @Valid : 애노테이션 기반으로 간편하게 validation 하기 => 필수 입력 필드에 값이 없으면 컨트롤러에서 해당 메서드 실행이 안 되지만, BindingResult를 함께 파라미터로 넣어주면 없는 채로 메서드가 실행될 수 있다!
스프링과 타임리프 연동이 매우 잘 되어 있어서 스프링 컨트롤러에서 타임리프 form 페이지로 보내면 BindingResult에서 에러를 알 수 있는 메서드가 굉장히 많은데 이것들을 이용해서 화면을 구성할 수 있다!
타임리프 템플릿 : createMemberForm.html <form action="/members/new"...method="post"> : 작성한 HTML Form 데이터는 동일한 url로 POST 방식으로 보낸다! th:object="${memberForm} : 타임리프 내에서 memberForm 객체를 변수처럼 계속 사용하겠다는 뜻이다. *{...} : 프로퍼티 접근법으로 객체의 속성에 접근할 수 있다. =>*{name}, *{city}, *{streeet}...
Last updated