ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 인프런 스프링 입문 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
Designed by Tistory.