스프링 입문 정리 (5) - 회원 관리 예제-웹 MVC 개발
1 ) 회원 웹 기능 - 홈 화면 추가
아래의 사진으로 보면 GetMapping 메소드를 추가하고, viewResolver 만들어진 home.html 를 만든다.
만약 Controller에 기본경로인 "/" 로 들어왔을 때의 함수를 정의해주지 않으면 static폴더의 index.html이 열리게 된다.
2 ) 회원 웹 기능 - 등록
MemberController에서 "/members/new" 를 Get할 경우 함수를 정의해준다.
templates -> members 폴더를 추가하고 createMemberForm.html 파일을 만든다.
localhost:8080/members/new 에 접속을 해보면 아래의 사진과 같이 보여준다.
input 안에 이름을 입력하고 등록버튼을 누르면 name이라는 key와 input안에 입력했던 value 값이 서버로 넘어간다.
name이라는 key값으로 value가 서버로 넘어오기 때문에 동일하게 name으로 선언해주면 자동으로 매칭이 된다.
그 후 MemberController 에서 PostMapping을 만들어준다.
위의 사진과 같이 컨트롤러의 @PostMapping("/members/new")에 매핑되고, 아래사진은 MemberForm에는 name property(재산)가 있고, Setter & Getter 가 구현되어 있다.
폼에서 입력한 name값이 저장되고, getName( )으로 값을 가져올 수 있다.
spring으로 등록하면, createMemberForm.html에 있는 것이 form안에 method = post이므로 post방식으로 "/members/new"경로 name="name"이고 value값으로 들어오게 된다.
form 객체에서 알아서 setName을 호출해서 name에 spring값을 넣어주게 된다.
그래서 함수의 두 번째 문단에 form.getName( ) 을 통해서 name값을 가져오고, 그 값을 member에 넣어주면 서비스 함수를 호출해서 멤버를 추가하게 된다.
3 ) 회원 웹 기능 - 조회
홈 화면에서 회원 목록을 누르면 @GetMapping("/members")로 이동한다.
findMembers( )를 호출한 후 model에 담고 /members/memberList로 이동후, ViewResolver에 memberList.html을 보내준다.
(th) 타임리프 문법을 사용하여 each 반복문을 통해 전체 member들을 가져온다.
실행파일을 보면 아래의 사진과 같이 가입한 회원 목록을 확인할 수 있다.
회원 정보가 메모리에 있기 때문에 서버를 재가동하면 회원 목록은 초기화가 된다.
초기화가 아니고 저장을 하려면 파일이나 DB에 저장해야 된다. (실무에서 저장안하면 큰일남..)
출처 : 인프런 - 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 김영한