07. 회원목록 출력하기
by 볼빵빵오춘기MemberController
- 회원 전체를 가져와야하므로 List에 DTO객체를 담아서 가져온다.
- Model이라는 객체가 있는데 서블릿입장에서는 리퀘스트 영역에 있는 데이타를 jsp, 템플릿엔진으로 가서 객체를 뿌려줄 수 있다. 그런 실어나르는 역할을 하는 것이 Model객체이다.(⇒ Model객체에 addAttribute()를 이용하여 List를 담아 간다. html로 가져갈 데이터가 있다면 model 사용한다.)
@GetMapping("/member/")
public String findAll(Model model){
// db에 있는 데이터를 가져온다.
// 한 개가 아니고 여러개이므로 List에 DTO객체로 담아온다.
List<MemberDTO> memberDTOList = memberService.findAll();
model.addAttribute("memberList", memberDTOList);
return "list";
}
MemberService
- findAll() 은 JPA가 제공하는 메서드이다.
- findAll()을 통해 가져온 데이터는 Entity로 가져온다.(Entity로 가져오는 것은 규칙)
- Entity객체로 가져온 List를 Controller에 보낼 때는 DTO객체로 넘겨야 하므로 for문으로 DTO객체 list로 담고 넘겨준다.
public List<MemberDTO> findAll() {
List<MemberEntity> memberEntityList = memberRepository.findAll();
List<MemberDTO> memberDTOList = new ArrayList<>();
for(MemberEntity memberEntity:memberEntityList){
memberDTOList.add(MemberDTO.toMemberDTO(memberEntity));
}
return memberDTOList;
}
list.html
- thymeleaf문법을 이용하므로 <html>태그안에 thymeleaf를 사용함을 알려준다.
- th:each ⇒ thymeleaf문법으로 자바에 반복문과 같은 것이다.
- <tr th:each="member: ${memberList}">
→ member는 반복되는 곳에서의 쓰이는 변수이름이다.
→ memberList 는 Controller에서 model에서 지정한 이름이다.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2>list.html</h2>
<span th:if="${session.loginEmail}" th:text="${session.loginEmail}"></span><br>
<table>
<tr>
<th>id</th>
<th>memberEmail</th>
<th>memberPassword</th>
<th>memberName</th>
<th>상세조회</th>
<th>삭제</th>
</tr>
<tr th:each="member: ${memberList}">
<td th:text="${member.id}"></td>
<td th:text="${member.memberEmail}"></td>
<td th:text="${member.memberPassword}"></td>
<td th:text="${member.memberName}"></td>
<td>
<!-- query string /member?id=1
rest api /member/1 -->
<a th:href="@{|/member/${member.id}|}">조회</a>
</td>
<td>
<a th:href="@{|/member/delete/${member.id}|}">삭제</a>
</td>
</tr>
</table>
</body>
</html>
'강의 따라하기 > member2' 카테고리의 다른 글
09. 회원정보 수정하기 (1) | 2023.12.28 |
---|---|
08. 회원정보 상세조회 (1) | 2023.12.28 |
06. 로그인 하기 (0) | 2023.12.28 |
05. 회원가입_회원가입 완료 (0) | 2023.12.28 |
05. 회원가입_DB 연동하기 (1) | 2023.12.28 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기