[스프링부트 시리즈23] 답변 개수 표시하기

Featured image

답변 개수 표시하기


이번에는 질문 목록 화면에서 해당 질문에 달린 답변 개수를 표시할 수 있는 기능을 추가해 보자. 코드의 분량은 많지 않지만, 게시판 서비스를 사용자 입장에서 더욱 편리하게 만들어 주는 기능이다.

1) 답변 개수는 앞서 본 화면과 같이 게시물 제목 바로 오른쪽에 표시하도록 만들어 보자.

[파일명:/templates/question_list.html]

<html layout:decorate="~{layout}">
<div layout:fragment="content" class="container my-3">
    <table class="table">
        <thead class="table-dark">
            <tr>
                <th>번호</th>
                <th>제목</th>
                <th>작성일시</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="question, loop : ${paging}">
                <td th:text="${paging.getTotalElements - (paging.number * paging.size) - loop.index}"></td>
                <td>
                    <a th:href="@{|/question/detail/${question.id}|}" th:text="${question.subject}"></a>
                    <span class="text-danger small ms-2"
                        th:if="${#lists.size(question.answerList) > 0}" 
                        th:text="${#lists.size(question.answerList)}">
                    </span>
                </td>
                <td th:text="${#temporals.format(question.createDate, 'yyyy-MM-dd HH:mm')}"></d>
            </tr>
        </tbody>
    </table>
(... 생략 ...)

th:if="${#lists.size(question.answerList) > 0}"로 답변이 있는지 조사하고, th:text="${#lists.size(question.answerList)}"로 답변 개수를 표시했다.

#list.size(이터러블_객체)는 ‘이터러블_객체’의 사이즈를 리턴하는 타임리프의 기능이다.

2) 이제 답변이 있는 질문은 다음과 같이 제목 오른쪽에 빨간색(text-danger) 숫자가 작게(small) 왼쪽 여백(ms-2)이 추가되어 표시된다. 답변