jpablog : board detail

This commit is contained in:
kim
2021-01-31 00:40:44 +09:00
parent becc2a0a93
commit 4b87bfe924
4 changed files with 39 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
package com.example.jpablog.controller;
import com.example.jpablog.model.Board;
import com.example.jpablog.service.BoardService;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
@@ -8,6 +9,7 @@ import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@Controller
@RequiredArgsConstructor
@@ -23,6 +25,12 @@ public class BoardController {
return "index";
}
@GetMapping("/board/{id}")
public String findById(@PathVariable Long id, Model model) {
model.addAttribute("board", boardService.글상세보기(id));
return "board/detail";
}
@GetMapping("/board/saveForm")
public String save() {
return "board/saveForm";

View File

@@ -31,4 +31,9 @@ public class BoardService {
public Page<Board> 글목록(Pageable pageable) {
return boardRepository.findAll(pageable);
}
public Board 글상세보기(Long id) {
return boardRepository.findById(id)
.orElseThrow(() -> new IllegalArgumentException("글 상세보기 실패 : 아이디를 찾을 수 없습니다."));
}
}

View File

@@ -0,0 +1,21 @@
<%@page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@include file="../layout/header.jsp"%>
<div class="container">
<button class="btn btn-secondary" onclick="history.back()">돌아가기</button>
<button id="btn-update" class="btn btn-warning">수정</button>
<button id="btn-delete" class="btn btn-danger">삭제</button>
<br/><br/>
<div class="form-group">
<h3 id="title">${board.title}</h3>
</div>
<hr/>
<div class="form-group">
<div id="content">${board.content}</div>
</div>
<hr/>
</div>
<script src="/js/board.js"></script>
<%@include file="../layout/footer.jsp"%>

View File

@@ -7,7 +7,7 @@
<c:forEach var="board" items="${boards.content}">
<div class="card-body">
<h4 class="card-title">${board.title}</h4>
<a href="/api/board/${board.id}" class="btn btn-primary">상세보기</a>
<a href="/board/${board.id}" class="btn btn-primary">상세보기</a>
</div>
</c:forEach>
</div>
@@ -15,9 +15,11 @@
<ul class="pagination justify-content-center">
<c:choose>
<c:when test="${boards.first}">
<li class="page-item disabled"><a class="page-link" href="/">First</a></li>
<li class="page-item disabled"><a class="page-link" href="?page=${boards.number -1}">Previous</a></li>
</c:when>
<c:otherwise>
<li class="page-item"><a class="page-link" href="/">First</a></li>
<li class="page-item"><a class="page-link" href="?page=${boards.number -1}">Previous</a></li>
</c:otherwise>
</c:choose>
@@ -31,18 +33,15 @@
<c:choose>
<c:when test="${boards.last}">
<li class="page-item disabled"><a class="page-link" href="?page=${boards.number + 1}">Next</a></li>
<li class="page-item disabled"><a class="page-link" href="?page=${boards.totalPages - 1}">Last</a></li>
</c:when>
<c:otherwise>
<li class="page-item"><a class="page-link" href="?page=${boards.number + 1}">Next</a></li>
<li class="page-item"><a class="page-link" href="?page=${boards.totalPages - 1}">Last</a></li>
</c:otherwise>
</c:choose>
</ul>
</div>
<script>
let page = "${boards.pageable.offset}"
console.log(page);
</script>
<%@include file="layout/footer.jsp"%>