09009
[Spring] 예제 1 연습 - 게시글 상세보기 본문
mainPage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>커뮤니티</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
</head>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
<body>
<div class="container">
<%-- 내비게이션 바 --%>
<div class="row">
<div class="col">
<jsp:include page="../common/topNavi.jsp"></jsp:include>
</div>
</div>
<%-- 내비게이션 바 --%>
<div class="row mt-5">
<div class="col"></div>
<div class="col-8">
<div class="row">
<div class="col fw-bold fs-3 text-center">자유게시판</div>
</div>
<div class="row mt-2">
<div class="col text-center">리그오브레전드 게시판입니다.</div>
</div>
<div class="row mt-4">
<table class="table">
<thead>
<tr>
<th scope="col">글번호</th>
<th scope="col">제목</th>
<th scope="col">글쓴이</th>
<th scope="col">날짜</th>
<th scope="col">조회</th>
<th scope="col">추천</th>
</tr>
</thead>
<tbody class="table-group-divider">
<c:forEach items="${list}" var="map">
<tr>
<th scope="row">${map.boardDto.boardid}</th>
<td><a href="./readContentPage?id=${map.boardDto.boardid}">${map.boardDto.title}</a></td>
<td>${map.userDto.nickname}</td>
<td><fmt:formatDate value="${map.boardDto.reg_date}" pattern="yy.MM.dd" /></td>
<td>${map.boardDto.readcount}</td>
<td>${map.boardDto.likecount}</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<div class="row">
<div class="col d-flex justify-content-end">
<c:if test="${!empty sessionUser}">
<button onclick="location.href='./writeContentPage'" class="btn btn-primary">글쓰기</button>
</c:if>
</div>
</div>
</div>
<div class="col"></div>
</div>
<div class="row"></div>
</div>
</body>
</html>
BoardSqlMapper
// 게시글 상세보기
public BoardDto selectBoardById(int boardid);
BoardSqlMapper.xml
<select id="selectBoardById" resultType="com.yyi.problem1.dto.BoardDto">
SELECT *
FROM pr_board
WHERE boardid = #{boardid}
</select>
BoardServiceImpl
// 게시글 상세보기
public Map<String, Object> getBoard(int boardid) {
Map<String, Object> map = new HashMap<>();
BoardDto boardDto = boardSqlMapper.selectBoardById(boardid);
UserDto userDto = userSqlMapper.selectUserById(boardDto.getUserid());
map.put("boardDto", boardDto);
map.put("userDto", userDto);
return map;
}
BoardController
@RequestMapping("readContentPage")
public String readContentPage(Model model, int id) {
Map<String, Object> map = boardService.getBoard(id);
model.addAttribute("data", map);
return "board/readContentPage";
}
readContentPage.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>커뮤니티</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin="anonymous">
</head>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ENjdO4Dr2bkBIFxQpeoTz1HIcje39Wm4jDKdf19U8gI4ddQ3GYNS7NTKfAdVQSZe" crossorigin="anonymous"></script>
<body>
<div class="container">
<%-- 내비게이션 바 --%>
<div class="row">
<div class="col">
<jsp:include page="../common/topNavi.jsp"></jsp:include>
</div>
</div>
<%-- 내비게이션 바 --%>
<div class="row mt-5">
<div class="col"> </div>
<div class="col-10">
<div class="row">
<div class="col fw-bold fs-4 text-center">
게시글 상세보기
</div>
</div>
<hr>
<div class="d-flex bd-highlight mb-3">
<div class="me-auto bd-highlight fw-bold">${data.boardDto.title} </div>
<div class="bd-highlight"><fmt:formatDate value="${data.boardDto.reg_date}" pattern="yy.MM.dd" /> </div>
</div>
<hr>
<div class="d-flex bd-highlight mb-3">
<div class="me-auto bd-highlight">작성자 : ${data.userDto.nickname}</div>
<div class="bd-highlight me-2">조회수 ${data.boardDto.readcount}</div>
<div class="bd-highlight me-2">추천 ${data.boardDto.likecount}</div>
<div class="bd-highlight">댓글 </div> <%-- 수정할 것 --%>
</div>
<hr>
<div class="row-8 mt-2">
<div class="row">
<div class="col"> ${data.boardDto.content}</div>
</div>
</div>
<hr>
<div class="row mt-2">
<div class="col d-flex justify-content-center">
<button class="btn btn-primary me-3" onclick="location.href='./mainPage'">목록</button>
<c:if test="${!empty sessionUser && sessionUser.userid == data.userDto.userid}">
<button class="btn btn-primary me-3" onclick="location.href='./updateContentPage?id=${data.boardDto.boardid}'">수정</button>
<button class="btn btn-primary" onclick="location.href='./deleteContentProcess?id=${data.boardDto.boardid}'">삭제</button>
</c:if>
</div>
</div>
</div>
<div class="col"> </div>
</div>
<div class="row">
</div>
</div>
</body>
</html>
'Back-End > Spring' 카테고리의 다른 글
[Spring] 예제 2 (예제 1에서 기능 추가) (0) | 2023.05.22 |
---|---|
[Spring] 예제 1 연습 - 게시글 수정 및 삭제 (0) | 2023.05.21 |
[Spring] 예제 1 연습 - 게시판 구현 (0) | 2023.05.20 |
[Spring] 예제 1 연습 - 로그인, 회원가입 기능 구현, 메인 페이지 (0) | 2023.05.20 |
[Spring] 예제 1 연습 - 회원 DTO, 로그인 및 회원가입 페이지 제작 (0) | 2023.05.20 |
Comments