Spring 회원 프로젝트(7) 회원목록 출력하기

woohee·2024년 4월 9일

회원 프로젝트

목록 보기
8/9

🔖지난 포스트까지 회원가입, 로그인을 끝마쳤다. 이번 포스트에서는 회원목록을 출력해보겠다!!


index.html 수정

초기 화면에서 목록 페이지를 추가한다.

<body>
    <h2>Hello Spring Boot!!</h2>
    <a href="/member/save">회원가입</a>
    <a href="/member/login">로그인</a>
    <a href="/member/">목록</a>
</body>

MemberController 수정

목록 페이지를 띄우려면 일단 controller에서 GetMapping을 해주어야 한다.

    @GetMapping("/member/")
    public String findAll(Model model){
       List<MemberDTO> memberDTOList = memberService.findAll();
       // 어떠한 html로 가져갈 데이터가 있다면 model 사용 (model을 사용하는건 가장 기본적인 방법)
       model.addAttribute("memberList", memberDTOList);
       return "list";
    }
  • 목록 페이지(list.html)에 회원목록을 출력해야 한다. -> Spring에서 제공하는 model을 넘겨준다.
    요즘에는 자바스크립트로도 많이들 넘겨주지만 model을 사용하는게 가장 기본적인 방법이다.
  • 회원목록은 하나가 아닌 다수이므로 List를 생성한다.
  • memberService에 findAll 메서드를 추가해서 회원 목록을 model에 추가해준다.
  • list.html을 요청한다.

MemberService 수정

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;
    }
  • memberRepository에서 회원 리스트 가져오기
  • Repository는 Entity객체만 가지므로 dto 객체로 변환해야 한다.
  • 회원 목록은 회원이 여러명이기 때문에 for문으로 Entity 객체 하나를 dto 객체 하나로 변환한다.
  • memberDTOList에 변환한 dto객체를 추가하고 리스트를 리턴한다.

list.html 생성

회원목록을 띄울 list.html을 생성한다.

<!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>
<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>

실행

목록에 들어가면 다음과 같이 db에 저장된 회원 목록을 가져온다.


다음 포스트부터는 회원정보를 상세조회하는 과정을 추가하겠다!!

0개의 댓글