[Spring Boot] 4. 회원 관리 예제 - 웹 MVC 개발

smjan27·2021년 5월 12일
0

Spring Boot

목록 보기
4/9
post-thumbnail

목차


👉변경 내역 GitHub에서 확인하기👈

홈 화면 추가

  • 홈 화면: src/main/resources/templates 폴더에 home.html 생성
<body>
    <div class="container">
        <div>
            <h1>Hello Spring</h1>
            <p>회원 기능</p>
            <p>
                <a href="/members/new">회원 가입</a>
                <a href="/members">회원 목록</a>
            </p>
        </div>
    </div>
</body>
  • 홈 컨트롤러: main/java/hello.hellospring/controllerHomeController 클래스 생성
@Controller
public class HomeController {
    @GetMapping("/")
    public String home() {
        return "home";
    }
}

등록

  • 등록 화면: main/resources/templates 위치에 members 폴더를 만든 후 createMemberForm.html 생성
<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>
  • 등록 폼: main/java/hello.hellospring/controllermemberForm 클래스 생성
package hello.hellospring.controller;

public class MemberForm {
    private String name;

    // 이름 가져오기
    public String getName() {
        return name;
    }

    // 이름 저장
    public void setName(String name) {
        this.name = name;
    }
}
  • 등록 컨트롤러: 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:/";
    }
HTTP 요청 메소드역할
POSTBODY에 데이터를 넣어 전송, 주로 저장할 때 사용
GETURL에 매개변수를 포함시켜 요청, 주로 조회할 때 사용

조회

  • 조회 화면: src/main/resources/templates 위치에 members 폴더에memberList.html 생성
// 테이블 부분 코드
<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>
  • 조회 컨트롤러: MemberController에 추가
    @GetMapping("/members")
    public String list(Model model) {
        List<Member> members = memberService.findMembers();
        model.addAttribute("members", members);
        return "members/memberList";
    }


서버를 내리면 데이터가 사라짐!

profile
No Stress🎈 Be Happy✨

0개의 댓글