회원관리Spring2023. 1. 30. 17:28
Table of Contents
간단한 회원정보 등록 및 조회 기능을 만들 예정
1. 메인화면
- homeController 생성
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
<!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>
⏩ 제대로 home.html을 불러오는지 확인
2. 등록화면
- MemberController 메소드
- @GetMapping("/members/new") 으로 오면 members/createMemberForm.html 반환
@Controller public class MemberController { // private final MemberService memberService = new MemberService(); private final MemberService memberService; @Autowired public MemberController (MemberService memberService){ this.memberService = memberService; } @GetMapping("/members/new") public String createForm(){ return "members/createMemberForm"; } }
- members>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>
⏩ 제대로 createMemberForm.html을 불러오는지 확인
3. 등록기능
- MemberForm class 생성
public class MemberForm {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
- 이름을 입력받는 form에서 데이터를 “/members/new” url로 post로 보냄
<!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에서 PostMapping 메소드 설정
- form 변수에는 아까 html form의 정보가 MemberForm 자료형으로 저장되어 있음
- 그 전에 만들어줬던 Member 객체를 생성해 form에 저장되어 있는 name 값을 저장한다.
- 이때 html form 태그에서 name = “name”로 지정해줬기 때문에, input 태그 데이터가 MemberForm의 name 변수에 저장된다.
- memberService의 join 기능으로 회원 등록
@PostMapping("members/new") public String create(MemberForm form){ Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; }
4. 조회 기능
- MemberController에서 모든 멤버 데이터를 가져온다
@GetMapping("/members")
public String list(Model model){
List<Member> members = memberService.findMembers();
model.addAttribute("members",members); //members 내용을 모두 가져와 model에 저장
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>
- 회원목록 확인
*인프런 스프링 입문 강의를 듣고 스스로 정리한 내용입니다. 블로그에 있는 내용의 출처는 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의입니다. (https://www.inflearn.com/course/스프링-입문-스프링부트)
'Spring' 카테고리의 다른 글
스프링 빈과 의존관계 (0) | 2023.01.29 |
---|---|
회원관리 예제 (0) | 2023.01.19 |
스프링 웹 개발 기초 (0) | 2023.01.18 |
View 환경설정 (0) | 2023.01.18 |
라이브러리 살펴보기 (0) | 2023.01.17 |
@gani+ :: Gani_Dev :)
꾸준히 기록할 수 있는 사람이 되자 !