여기서 봐야할건 static 정적 홈페이지가 있는데도 불구하고 hello.html
파일이 실행되었다는 점이다. 이전 글에 써져있는데 처음에 요청이 오면 처음에 스프링 컨테이너를 찾아보고 없으면 static을 찾게 된다. 즉 우선 순위가 있기 때문에 우선 순위가 더 높은 Controller가 실행되는 것이다.
home.html
파일을 살펴보면 회원가입 버튼을 누르면 /member/new
로 이동하는 것을 알 수 있다. localhost8080:/member/new
를 뜻한다.
MemberController
에 @GetMapping
을 통해 members/createMemberForm.html
으로 이동하게 된다.
위에서 <form action"/members/new" method="post">
는
/members/new
로 post방식
으로 보낸다는 뜻이다. 그럼 이걸 어떻게 받냐,
위처럼 @PostMapping
어노테이션을 사용하면 post방식을 받게 된다.
그러면 MemberForm으로 값을 받게 되고, MemberForm의 setter로 자동 처리가 된다. 참고로 MemBerForm
은
이렇게 있다. html
에서 form
안에 name
이 MemberForm
의 name
으로 설정이 된다.
/members로 이동하게 되면 Model 인터페이스를 생성하고, 각 멤버들을 리스트로 작성한 뒤, "members"에 넣은 값들을 members/memberList.html로 넘기게 된다.
여기서 thymeleaf
- th
의 문법이 사용되는데
중간에 th:each="member : ${members}
에서 members가 없을 때까지 반복문을 돌게 된다. 그리고 그 반복문에서 id
와 name
을 getter
방식으로 꺼내서 출력하는 방식이다.
회원 가입으로 spring1과 spring2를 등록한 후 회원 조회를 했을때의 화면이다.
그런데 위의 데이터는 스프링을 끄면 사라지게 된다. 이를 사라지지 않기 위해 사용하는 것이 데이터베이스이다. 다음 글은 데이터베이스와 관련된 글이다.
인프런 홈페이지 - https://www.inflearn.com/
강의 제목 - 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술