minghxx.blog
  • [Spring] 스프링 입문 5) 회원 관리 예제 - 웹 MVC 개발
    2023년 10월 14일 17시 06분 20초에 업로드 된 글입니다.
    작성자: 민발자
    728x90

    스프링 입문 - 스프링 부트 웹 MVC, DB 접근 기술 

    Session 5 회원 관리 예제 - 웹 MVC 개발

    1. 회원 웹 기능 - 홈 화면 추가

    1) 홈화면 추가

    @Controller
    public class HomeController {
        @GetMapping("/")
        public String home() {
            return "home";
        }
    }

    localhost:8080 주소로 들어가면 homeController의 home()이 호출이 되고 home.html을 웹브라우저에게 전달

    ▶ 컨테이너에서 관련 컨트롤러를 찾고 없으면 static 페이지, 있으면 컨트롤러가 호출되기 때문에 home.html이 뜬다


    2. 회원 웹 기능 - 등록

    1) 회원 등록 폼

    memberController에 추가

    // 등록 화면으로 이동
    @GetMapping("/members/new")
    public String createForm() {
        return "members/createMemberForm";
    }
    <!DOCTYPE html>
    <html xmlns:th="http://www.thymeleaf.org">
        <head>
            <meta charset="UTF-8">
            <title>회원가입</title>
        </head>
        <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>
    

     

    2) 회원 등록 컨트롤러

    MemberForm class 생성

    // 등록 화면에서 데이터를 전달 받을 객체
    public class MemberForm {
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }

    memberController에 추가

    // 등록화면에서 전달받은 form 객체를 실제로 등록하는 기능
    @PostMapping("/members/new")
    public String create(MemberForm form) {
        Member member = new Member();
        member.setName(form.getName());
    
        memberService.join(member);
    
        return "redirect:/"; // 홈화면으로 돌아감
    }

     

    get 방식 ▶ 웹페이지 주소를 입력해 들어가는 방식

    post 방식 ▶ 데이터를 action url로 넘겨주는 방식


    3. 회원 웹 기능 - 조회

    1) 회원 조회 기능

    memberController에 추가

    @GetMapping("members")
    public String list(Model model) {
        List<Member> members = memberService.findMembers();
        model.addAttribute("members", members);
        return "members/memberList";
    }
    <!DOCTYPE HTML>
    <html xmlns:th="http://www.thymeleaf.org">
        <head>
            <meta charset="UTF-8">
            <title>회원목록</title>
        </head>
        <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>

    ▶ memberController에서 model에 회원 리스트를 담아서 타임리프에게 전달

    타임리프에서 ${model} 작성한 것은 model에 저장된 값을 꺼낼 수 있게 함

    728x90
    댓글