Hello

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>&nbsp;
                        <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

볼빵빵오춘기

활동하기