diff --git "a/resources/\354\273\250\355\212\270\353\241\244\353\237\254-\354\212\244\355\203\234\355\213\261 \354\232\260\354\204\240\354\210\234\354\234\204.png" "b/resources/\354\273\250\355\212\270\353\241\244\353\237\254-\354\212\244\355\203\234\355\213\261 \354\232\260\354\204\240\354\210\234\354\234\204.png" new file mode 100644 index 0000000..bb6d556 Binary files /dev/null and "b/resources/\354\273\250\355\212\270\353\241\244\353\237\254-\354\212\244\355\203\234\355\213\261 \354\232\260\354\204\240\354\210\234\354\234\204.png" differ diff --git "a/\354\204\271\354\205\2305 \355\232\214\354\233\220 \352\264\200\353\246\254 \354\230\210\354\240\234 - \354\233\271 MVC \352\260\234\353\260\234.md" "b/\354\204\271\354\205\2305 \355\232\214\354\233\220 \352\264\200\353\246\254 \354\230\210\354\240\234 - \354\233\271 MVC \352\260\234\353\260\234.md" new file mode 100644 index 0000000..103df62 --- /dev/null +++ "b/\354\204\271\354\205\2305 \355\232\214\354\233\220 \352\264\200\353\246\254 \354\230\210\354\240\234 - \354\233\271 MVC \352\260\234\353\260\234.md" @@ -0,0 +1,155 @@ +# 섹션5. 회원 관리 예제 - 웹 MVC 개발 + +회원 웹 기능으로 홈화면을 추가하고 회원 등록, 회원 목록 조회 컨트롤을 만들어본다. + +# 홈 화면 추가 + +`/`로 오는 GET 요청에 응답하기 위해 HomeController와 처리 메소드, `home.html`을 만든다. + +```java +package hello.hellospring.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class HomeController { + @GetMapping("/") + public String home() { + return "home"; + } +} +``` + +```html + + +
+ + + +``` + +이제부터 `/`로 오는 GET 요청은 기존의 `resources/static/index.html`이 아닌 `home.html`이 반환되기 시작한다. 그 이유는 스프링이 먼저 스프링 컨테이너에서 관련된 컨트롤러를 찾고, 없으면 static 파일을 찾기 때문이다. + + + +# 회원 등록 + +MemberController에 `/members/new` GET, POST 요청에 응답하는 메소드와 html 파일을 만든다. HTML 파일의 form 태그 내부 input 태그의 name property가 핵심이다. name property의 값과 폼으로 쓰는 자바 클래스의 멤버 변수와 이름이 일치해야 한다. + +```java +@Controller +public class MemberController { +... + @GetMapping("/members/new") + public String createForm() { + return "members/createMemberForm"; + } + + @PostMapping("/members/new") + public String create(MemberForm form) { + Member member = new Member(); + member.setName(form.getName()); + + memberService.join(member); + + return "redirect:/"; + } +``` + +```html + + + +# | +이름 | +
---|---|
+ | + |