58. 글 상세보기
by 볼빵빵오춘기57. 페이징 하기 - 생략 (member2, board 할 때 페이징과 동일하게 하기 때문에 하는 방법은 생략)
index.jsp
더보기 링크 수정한다.
<c:forEach var="board" items="${boards.content}">
<div class="card m-2">
<div class="card-body">
<h4 class="card-title">${board.title}</h4>
<a href="/board/${board.id}" class="btn btn-primary">더보기</a>
</div>
</div>
</c:forEach>
BoardController
@GetMapping("/board/{id}")
public String findById(@PathVariable int id,Model model){
model.addAttribute("board",boardService.글상세보기(id));
return "board/detail";
}
BoardService
@Transactional(readOnly = true)
public Board 글상세보기(int id) {
return boardRepository.findById(id)
.orElseThrow(()->{
return new IllegalArgumentException("글 상세보기 실패 : 아이디를 찾을 수 없습니다.");
});
}
detail.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8 " pageEncoding="UTF-8"%>
<%@ include file="../layout/header.jsp"%>
<div class="container">
<br>
<button class="btn btn-secondary" onclick="history.back();">돌아가기</button>
<c:if test="${board.user.id == principal.user.id}">
<a href="/board/${board.id}/updateForm" class="btn btn-warning">수정하기</a>
<button id="btn-delete" class="btn btn-danger">삭제</button>
</c:if>
<br><br>
<div>
글 번호 : <span id="id"><i>${board.id} </i></span>
작성자 : <span><i>${board.user.username} </i></span>
</div>
<br>
<h3>${board.title}</h3>
<div>${board.content} </div>
<hr>
<div class="card">
<form>
<input type="hidden" id="userId" value="${principal.user.id}">
<input type="hidden" id="boardId" value="${board.id}">
<div class="card-body">
<textarea id="reply-content" rows="2" class="form-control"></textarea>
</div>
<div class="card-footer">
<button type="button" id="btn-reply-save" class="btn btn-primary">등록</button>
</div>
</form>
</div>
<br>
<div class="card">
<div class="card-header">댓글 리스트</div>
<ul id="reply-box" class="list-group">
<c:forEach var="reply" items="${board.replys}">
<li id="reply-${reply.id}" class="list-group-item d-flex justify-content-between">
<div>${reply.content}</div>
<div class="d-flex">
<div class="font-italic">작성자: ${reply.user.username}</div>
<button onClick="index.replyDelete(${board.id},${reply.id})" class="badge">삭제</button>
</div>
</li>
</c:forEach>
</ul>
</div>
</div>
<script src="/js/board.js"></script>
<%@ include file="../layout/footer.jsp"%>
'강의 따라하기 > blog' 카테고리의 다른 글
60. 글 수정하기 (0) | 2024.01.04 |
---|---|
59. 글 삭제하기 (0) | 2024.01.04 |
56. 글목록 보기 (0) | 2024.01.04 |
55. 글쓰기 완료 (0) | 2024.01.04 |
54. 스프링 시큐리티 로그인 (1) | 2024.01.04 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기