Hello

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

볼빵빵오춘기

활동하기