회원을 가입하기 위한 정보를 받는 페이지를 제작한다.
@GetMapping (“/”) // 최상위(홈 페이지) 요청시
public String home(){
return “home”; // home 페이지를 렌더링
}
이전에 static 파일인 Welcome 페이지를 띄우는 것을 실습했다.
이는 아무것도 띄울 페이지가 없어서다.
요청이 서버에 들어오지만 스프링 컨테이너에 요청된 것과 관련된 컨트롤러가 없을 시에 static 파일을 찾아 띄운다.
PostMapping("/members/new") // /members/new 요청시
public String create(MemberForm form) {
Member member = new Member(); // 멤버 클래스 변수 생성
member.setName(form.getName()); // 입력한 이름을 set
memberService.join(member); // 멤버 객체를 저장
return "redirect:/; // 메인 페이지로 이동
}
@PostMapping, 기존에 사용하던 GetMapping과는 다르다.
우리가 흔히 아는 post, get 방식에 따른 차이이다.
컨트롤러에 Get맵핑이 되어 있다면 그 주소로 Get 요청이 들어왔을 때, Post맵핑은 Post 요청이 들어 왔을 때 실행된다.
주로 포스트는 데이터를 form과 같은 형식에 넣어서 전달할 때 쓰이고 Get은 조회를 할 때 사용이 된다.
여기서 궁금한 점이 있었다.
PostMapping을 한 부분에서 setName의 매개변수인 form은 어디에서 온건가..?
폼에서 setName을 통해서 스프링이 알아서 넣어준다고 하는데 잘 모르겠다..;