-
인프런 스프링 입문 07 / 회원관리 예제Spring&SpringBoot 2022. 12. 6. 15:12
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원관리 예제 - 웹 MVC 개발
회원 웹 기능 - 홈 화면 추가
- homecontroller (controller)
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 (template)
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <div> <h1>Hello Spring</h1> <p>회원 기능</p> <p> <a href="/members/new">회원 가입</a> <a href="/members">회원 목록</a> </p> </div> </div> <!-- /container --> </body> </html>
회원 웹 기능 - 등록
- MemberController
@Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @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); return "redirect:/"; } }
> "/members/new" url이 똑같아도 get/post가 다르기 때문에 알아서 알맞게 작동
- MemberForm
public class MemberForm { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
- createMemberForm.html
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <form action="/members/new" method="post"> <div class="form-group"> <label for="name">이름</label> <input type="text" id="name" name="name" placeholder="이름을 입력하세요"> </div> <button type="submit">등록</button> </form> </div> <!-- /container --> </body> </html>
회원 웹 기능 - 조회
- memberController
@Controller public class MemberController { @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members") public String list(Model model) { List<Member> members = memberService.findMembers(); model.addAttribute("members", members); return "members/memberList"; } }
- memberList.html
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <div> <table> <thead> <tr> <th>#</th> <th>이름</th> </tr> </thead> <tbody> <tr th:each="member : ${members}"> <td th:text="${member.id}"></td> <td th:text="${member.name}"></td> </tr> </tbody> </table> </div> </div> <!-- /container --> </body> </html>
728x90'Spring&SpringBoot' 카테고리의 다른 글
인프런 스프링 입문 09 / 스프링 JDBCTemplate (0) 2022.12.14 인프런 스프링 입문 08 / 스프링 DB 접근, H2, JDBC (0) 2022.12.06 인프런 스프링 입문 06 / 스프링 빈 등록 2 가지 (2) 2022.12.04 인프런 스프링 입문 05 / 회원 관리 예제, junit 테스트하는 방법 (0) 2022.12.04 JSON이란? JSON 기초 정리 (1) 2022.12.03