개발일기

회원 웹 기능 - 조회 본문

Spring/Spring tutorial - 코드로 배우는 스프링 (김영한)

회원 웹 기능 - 조회

한둥둥 2022. 9. 26. 15:23
@GetMapping("/members")
    public String list(Model model){
        List<Member> members = memberService.findMembers();
        model.addAttribute("members",members);
        return "members/memberList";
    }

members의 url로 접근하면 해당 GetMapping의 list메서드가 실행 된다.

이 때 Member 클래스 타입을 타입으로 가져 List형태로 차례대로 배열에 집어 넣어준다.

이후에 addAttribute를 통해서 view에 넘겨줄 준비를 해준다. 

return "members/memberList" 부분에서 members 값들을 memberList view로 넘겨주어 값을 출력해줄 것이다. 

 

이 때 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>

thymeleaf의 역할을 설명하기 전에 지금까지 해온 코드들을 한번 Run 시켜보자. 

해당 코드가 정상적으로 작동하는 모습을 살펴 볼 수 있다. 

members를 getMapping하였던 liest메서드에서 addAttribute  해준 members값을 view 단에 있는 ${members}는 model안에 있는 값을 꺼내온다. 

타임리프의 문법으로 th:each라고 하면 th=each ="member : ${member}"에서 model에서 member를 하나 꺼내서 member를 하나 다음. 그리고 객체의 값들을 하나씩 꺼내서 html태그에 담아 넣어준다.