package hello.hellospring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HomeController {
@GetMapping("/")//GET요청 없는 경우의 화면
public String home(){
return "home";
}
}
해당 클래스는 홈화면에서 들어오는 GET요청 처리 및 해당 페이지에서 POST요청을 처리하는 역할을 합니다.
@Controller // annotation 역할 : spring bean으로 만들고 해당 클래스를 spring-container에서 관리
public class MemberController {
private final MemberService memberService;
@Autowired//Controller 와 Service 간의 연결 수행하는 어노테이션
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
@GetMapping("/members/new")
public String createForm() {
return "members/createMemberForm";
}
//submit 클릭 시 POST 요청 발생하며, 홈 화면으로 리다이렉트
@PostMapping("members/new")
public String create(MemberForm memberForm) {
Member member = new Member();
member.setName(memberForm.getName());
memberService.join(member);
return "redirect:/";
}
}
멤버등록을 위한 MemberForm 클래스도 생성합니다.
package hello.hellospring.controller;
public class MemberForm {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
이후 createMemberForm.html을 members 디렉토리 내에 생성하고 구현합니다.