* 인프런 김영한님의 '스프링 입문' 강의를 듣고 작성한 내용입니다! (https://inf.run/txXC)
홈 화면 추가
1. 홈 컨트롤러 추가
- hello.hellospring/controller/HomeController.java
- localhost:8080/으로 접속하면 home.html이 반환되도록 했다 (template/home.html)
- 이전에 static/index.html로 Welcomepage를 생성했지만, 컨트롤러가 정적파일보다 우선순위가 높기때문에 home.html이 띄워진다
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"; // home.html이 호출된다 | |
} | |
} |
2. 홈 화면
- template/home.html
회원 등록 기능
1. 회원 등록 컨트롤러
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package hello.hellospring.controller; | |
import hello.hellospring.domain.Member; | |
import hello.hellospring.service.MemberService; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.stereotype.Controller; | |
import org.springframework.ui.Model; | |
import org.springframework.web.bind.annotation.GetMapping; | |
import org.springframework.web.bind.annotation.PostMapping; | |
import java.util.List; | |
@Controller | |
public class MemberController { | |
private final MemberService memberService; | |
@Autowired | |
public MemberController(MemberService memberService) { | |
this.memberService = memberService; | |
System.out.println("memberService = " + memberService.getClass()); // aop : proxy 확인 | |
} | |
@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()); | |
System.out.println("member = " + member.getName()); | |
memberService.join(member); // 우리가 만든 join 함수 | |
return "redirect:/"; // 회원가입이 끝나고 home화면으로 redirect | |
} | |
@GetMapping("/members") | |
public String list(Model model) { | |
List<Member> members = memberService.findMembers(); | |
model.addAttribute("members", members); | |
return "members/memberList"; | |
} | |
} |
- localhost:8080/member/new 로 접속하면 templates/members/createMemberForm.html 반환
- 회원이 form 작성 후 submit 하면 post로 data 전달
- @PostMapping에서 새로운 member를 생성하고 입력받은 name을 넣어준다
- Service의 join(회원가입)에 member객체를 넣어준다
- home url로 redirect 해준다
2. 웹에서 데이터를 전달받을 폼 객체
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package hello.hellospring.controller; | |
public class MemberForm { | |
private String name; // createMemberForm.html에서 input tag의 name과 matching | |
public String getName() { | |
return name; | |
} | |
public void setName(String name) { | |
this.name = name; | |
} | |
} |
3. 회원 등록 폼 HTML
회원 조회 기능
- 회원 컨트롤러에서 조회 기능 (위의 회원 등록 컨트롤러에서의 @GetMapping(/members)
java의 foreach문 처럼 members list에서 하나씩 꺼내서 id와 name을 각각 ${member.id}, ${member.name}에 넣어준다
'개발 > Spring' 카테고리의 다른 글
[스프링 입문] AOP (0) | 2021.06.30 |
---|---|
[스프링 입문] 스프링 회원관리 예제 - 7. 스프링 DB 접근 기술 (0) | 2021.06.30 |
[스프링 입문] 스프링 회원관리 예제 - 5. 스프링 빈과 의존관계 (0) | 2021.06.30 |
[스프링 입문] 스프링 회원관리 예제 - 4. 회원 서비스 개발 및 테스트 (0) | 2021.06.29 |
[스프링 입문] 스프링 회원관리 예제 - 3. 회원 레포지토리 테스트 케이스 작성 (0) | 2021.06.29 |