홈화면 추가
웹브라우저 url에 http://localhost:8080을 입력해서 접속하면 위의 HomeController의 home메소드가 실행된다.
Return "home"은 tempaltes의 home.html을 반환한다는 의미이다.
members/new 로 가게하는 회원가입 과 /members 로 이동시키는 회원 목록 이 있다.
위 파일 목록을 보면 원래 home의 디폴트는 static/index.html 이였다.
home의 디폴트가 home.html이 되었는데 그 이유는 요청이 들어올 때, 스프링 컨트롤러에서 해당 요청에 해당하는 메소드를 찾고 해당하는것이 없을 경우 static내에서 파일을 찾아 출력해주기 때문이다.
위의 코드에서는 컨트롤러에 @GetMapping("/") 에 해당하는 home 메소드가 존재하기 때문에 해당 메소드를 실행시켜 home.html을 반환하는 것이다.
회원가입
/member/new로 Get 요청이 들어오는 경우 실행되는 createForm 메소드이다. members/createMemberForm.html
을 반환한다.
이름을 입력받아 회원가입하고 해당 데이터를 /member/new 경로에 post방식으로 전송한다.
등록을 누를경우 해당 데이터가 /member/new 경로로 post 데이터 전송을 한다.
name을 받기위해 Controller 디렉토리에 추가해준 MemberForm이다.
createMemberForm에서 name을 반환할 경우 해당 값을 받기 위한 클래스이다.
create메소드
createMemberForm에서 post보낸 데이터를 받는 메소드이다.
post 전송방식에 매핑하기 위해 @PostMapping을 이용하고 createMemberForm에서 받은 정보가 MemberForm form으로 전송되고 해당 정보를 새로 생성한 member객체에 넣어 memberService.join을 통해 메모리에 저장한다.
해당 동작이 끝나면 home 화면으로 redirect 시켜준다.
회뭔 목록 조회
memberService.findMembers를 통해 저장된 회원들의 정보를 모두 가져온다.
model 객체에 addAttribute를 통해 가져온 정보를 model객체에 저장하고 해당 정보를 members/memberList에 반환한다.
Thymeleaf를 사용해 모든 회원들의 정보를 출력시킨다.
${member.id}는 member.getId() 메소드의 결과를 반환하고, ${member.name}은 member.getName() 메소드의 결과를 반환하여 출력한다.
3명의 회원을 등록하고 members 로 get요청하여 memberList.html을 출력한 결과이다.
'Programming > Spring' 카테고리의 다른 글
스프링 빈과 의존관계 (0) | 2022.01.06 |
---|---|
회원 관리 예제 (0) | 2021.12.30 |
웹개발 기초 (0) | 2021.12.21 |