이제 회원 웹 기능 중 등록할 수 있는 기능을 만들어보자.
전에 만들어주었던 MemberController 클래스에
위와 같은 코드를 추가해주자.
전에 만든 home.html 에서 회원 가입을 클릭하면 /members/new 로 이동하므로 @GetMapping 을 이용하여 이 URL 로 이동 할 수 있게 해준다.
이동하면 members 폴더에 있는 createMemberForm 이라는 html을 띄워주도록 하였다.
위와 같이 main -> java -> resources -> templates 에 members 라는 디렉토리를 하나 만들어준 후, 이 안에 createMemberForm.html을 만들어준다.
createMemberForm.html 파일에 위와 같은 html 코드를 적어준다.
서버를 실행시킨뒤 localhost:8080 에 들어가서 회원 가입 버튼을 눌러주면
위와 같이 /members/new URL로 이동하면서 createMemberForm.html 파일을 띄우는 것을 볼 수 있다!
이름을 적고 등록버튼을 누르게 되면 input의 name에 적어주었던 값을 key로 하여 form의 action에 적혀있는 URL로 form의 method에 적혀있는 방식으로 적은 이름이 넘어가게된다.
즉, 위의 코드는 적어준 이름이 name이라는 key로 /members/new에 POST 방식으로 넘어가게 된다.
이제 main -> java -> com.example.hello.springboot -> controller 에 가서 MemberForm 이라는 Class를 하나 만들어준 뒤
위의 코드를 써주고, MemberController 클래스에
위와 같은 코드를 작성해준다.
members/new로 name 이라는 key에 우리가 입력한 이름을 전달받은 후, 임의의 MemberForm 객체가 만들어져서 MemberForm의 set 메소드의 파라미터 이름이 key와 같다면(setter, getter 메소드의 이름도 key와 같아야 함!!), 입력한 이름을 set메소드를 통해 변수에 자동으로 값을 넣어주게 된다(프로퍼티 바인딩).
그 후, Member 클래스에서 만들어주었던 setName 메소드를 이용하여 Member 객체의 name에 MemberForm 의 set 메소드를 통해 변수에 넣어주었던 값을 넣어준 후, MemberService 클래스에서 만들어 주었던 join 메소드를 이용하여 이 Member 객체를 store에 추가시켜준다.
위의 MemberForm 클래스와 같이 로직을 갖고있지 않고, 순수한 데이터 객체이고 속성과 그 속성에 접근하기 위한 getter, setter 메소드만 가진 클래스, 즉 계층간 데이터 교환을 위한 자바빈즈를 DTO(Data Transfer Object) 라고 한다.
♣ 참고 : DTO(Data Transfer Object)
-> https://genesis8.tistory.com/214
DAO / VO / DTO란?
원본 출처 : http://lbass.tistory.com/entry/DAO-%EB%9E%80 http://choijaehyuk.com/128 http://everyit.tistory.com/4 DAO란 Data Access Object의 약어로서 실질적으로 DB에 접근하는 객체를 말한다. DAO의..
genesis8.tistory.com
'BackEnd > Spring Boot' 카테고리의 다른 글
H2 데이터베이스 설치하기 (0) | 2022.10.22 |
---|---|
회원 웹 기능 - 조회하기 (0) | 2022.10.22 |
회원 웹 기능 - 홈 화면 추가하기 (0) | 2022.10.19 |
자바 코드로 직접 스프링 빈 등록하기 (0) | 2022.10.18 |
컴포넌트 스캔 & Autowired 통한 스프링 빈 등록 (2) | 2022.10.13 |