1. 엔티티 추가
2. 서비스 작성
3. html 작성
4. 완성 화면
1. 엔티티 추가
- 조회수를 나타낼 엔티티 추가
파일 경로 : com.mysite.sbb/question/question.java
@Column(columnDefinition = "integer default 0", nullable = false)
private Integer views;
2. 서비스 작성
- questionViews는 question을 불러옴
- question을 불러올 때마다 Views를 가져와서 1씩 더해주고 레포지토리에 저장함
파일 경로 : com.mysite.sbb/question/questionService.java
public Question getQuestion(Integer id){
Optional<Question> question = this.questionRepository.findById(id);
if(question.isPresent()){
Question questionViews = question.get();
questionViews.setViews(questionViews.getViews() + 1);
this.questionRepository.save(questionViews);
return questionViews;
} else {
throw new DataNotFoundException("question not found");
}
}
3. html 작성
- 조회수를 나타낼 html문 추가
파일 경로 : resources.templates/question_list.html
<thead class="table-dark">
<tr calss="text-center">
~ 생략 ~
<th>작성일시</th>
//조회수 추가
<th>조회수</th>
</tr>
</thead>
<tbody>
<tr class="text-center" th:each="question, loop : ${paging}">
~ 생략 ~
<td th:text="${#dates.format(question.createDate, 'yyyy-MM-dd HH:mm')}"></td>
//조회수 추가
<td th:text="${question.views}"></td>
</tr>
</tbody>
파일 경로 : resources.templates/question_detail.html
<div class="d-flex justify-content-end">
<div th:if="${question.modifyDate != null}" class="badge bg-light text-dark p-2 text-start mx-3">
<div class="mb-2">modified at</div>
<div th:text="${#dates.format(question.modifyDate, 'yyyy-MM-dd HH:mm')}"></div>
</div>
<div class="badge bg-light text-dark p-2 text-start">
<div class="mb-2">
<span th:if="${question.author != null}" th:text="${question.author.username}"></span>
</div>
<div th:text="${#dates.format(question.createDate, 'yyyy-MM-dd HH:mm')}"></div>
</div>
//조회수 추가
<div class="badge bg-light text-dark p-2 text-start mx-3">
<div class="mb-2">views</div>
<div th:text="${question.views}"></div>
</div>
</div>
4. 완성 화면
출처: 천재블로그
'Language > Springboot' 카테고리의 다른 글
[Stringboot] 네이버지도 API에 현재 위치 받아오기 (0) | 2022.08.28 |
---|---|
[Stringboot] 제이쿼리(jQuery) 적용하기 (0) | 2022.08.28 |
[Springboot] 웹에 네이버지도 API 추가하기 (0) | 2022.08.26 |
[Stringboot] 게시글 댓글 페이징 기능 구현하기 (1) | 2022.08.25 |
[Springboot] 게시글 이전글 다음글 쿼리(Oracle) 및 구현하기 (+8/27 수정) (0) | 2022.08.25 |