jspblog : reply list

This commit is contained in:
kim
2021-01-22 20:06:34 +09:00
parent 4a1301898e
commit 80c6990ba8
4 changed files with 55 additions and 1 deletions

View File

@@ -1,13 +1,14 @@
package com.example.jspblog.domain.reply; package com.example.jspblog.domain.reply;
import com.example.jspblog.config.DB; import com.example.jspblog.config.DB;
import com.example.jspblog.domain.board.dto.DetailResDto;
import com.example.jspblog.domain.reply.dto.SaveReqDto; import com.example.jspblog.domain.reply.dto.SaveReqDto;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Statement; import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class ReplyDao { public class ReplyDao {
public int save(SaveReqDto dto) { public int save(SaveReqDto dto) {
@@ -66,4 +67,34 @@ public class ReplyDao {
} }
return null; return null;
} }
public List<Reply> findAll(int boardId) {
String sql = "select * from reply where boardId= order by desc";
Connection conn = DB.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Reply> replies = new ArrayList<>();
if (conn != null) {
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, boardId);
rs = pstmt.executeQuery();
while (rs.next()) {
Reply reply = Reply.builder()
.id(rs.getInt("id"))
.userId(rs.getInt("userId"))
.boardId(rs.getInt("boardId"))
.content(rs.getString("content"))
.build();
replies.add(reply);
}
return replies;
} catch (Exception e) {
e.printStackTrace();
} finally {
DB.close(conn, pstmt, rs);
}
}
return null;
}
} }

View File

@@ -4,6 +4,8 @@ import com.example.jspblog.domain.reply.Reply;
import com.example.jspblog.domain.reply.ReplyDao; import com.example.jspblog.domain.reply.ReplyDao;
import com.example.jspblog.domain.reply.dto.SaveReqDto; import com.example.jspblog.domain.reply.dto.SaveReqDto;
import java.util.List;
public class ReplyService { public class ReplyService {
private final ReplyDao replyDao; private final ReplyDao replyDao;
@@ -19,4 +21,8 @@ public class ReplyService {
public Reply 댓글찾기(int id) { public Reply 댓글찾기(int id) {
return replyDao.findById(id); return replyDao.findById(id);
} }
public List<Reply> 댓글목록보기(int boardId) {
return replyDao.findAll(boardId);
}
} }

View File

@@ -2,8 +2,10 @@ package com.example.jspblog.web;
import com.example.jspblog.domain.board.Board; import com.example.jspblog.domain.board.Board;
import com.example.jspblog.domain.board.dto.*; import com.example.jspblog.domain.board.dto.*;
import com.example.jspblog.domain.reply.Reply;
import com.example.jspblog.domain.user.User; import com.example.jspblog.domain.user.User;
import com.example.jspblog.service.BoardService; import com.example.jspblog.service.BoardService;
import com.example.jspblog.service.ReplyService;
import com.example.jspblog.service.UserService; import com.example.jspblog.service.UserService;
import com.example.jspblog.util.Script; import com.example.jspblog.util.Script;
import com.google.gson.Gson; import com.google.gson.Gson;
@@ -32,6 +34,7 @@ public class BoardController extends HttpServlet {
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cmd = request.getParameter("cmd"); String cmd = request.getParameter("cmd");
BoardService boardService = new BoardService(); BoardService boardService = new BoardService();
ReplyService replyService = new ReplyService();
HttpSession session = request.getSession(); HttpSession session = request.getSession();
User principal = (User) session.getAttribute("principal"); User principal = (User) session.getAttribute("principal");
switch (cmd) { switch (cmd) {
@@ -76,10 +79,13 @@ public class BoardController extends HttpServlet {
case "detail" : { case "detail" : {
int id = Integer.parseInt(request.getParameter("id")); int id = Integer.parseInt(request.getParameter("id"));
DetailResDto dto = boardService.글상세보기(id); DetailResDto dto = boardService.글상세보기(id);
List<Reply> replies = replyService.댓글목록보기(id);
if (dto == null) { if (dto == null) {
Script.back(response, "상세보기에 실패하였습니다."); Script.back(response, "상세보기에 실패하였습니다.");
} else { } else {
request.setAttribute("detail", dto); request.setAttribute("detail", dto);
request.setAttribute("replies", replies);
request.getRequestDispatcher("board/detail.jsp").forward(request, response); request.getRequestDispatcher("board/detail.jsp").forward(request, response);
} }
break; break;

View File

@@ -40,6 +40,17 @@
<!-- 댓글 리스트 시작--> <!-- 댓글 리스트 시작-->
<ul id="reply__list" class="media-list"> <ul id="reply__list" class="media-list">
<!-- 댓글 아이템 --> <!-- 댓글 아이템 -->
<c:forEach var="reply" items="${replies}">
<li id="reply-${reply.id}" class="media">
<img src="/jspblog/images/profile.jpg" class="img-circle" style="width: 50px; height: 50px;" alt="profile-image"/>
<div class="media-body">
<strong class="text-primary">${reply.userId}</strong>
<p>${reply.content}</p></div>
<div class="m-2">
<i onClick="deleteReply(${reply.id})" class="material-icons">delete</i>
</div>
</li>
</c:forEach>
</ul> </ul>
<!-- 댓글 리스트 끝--> <!-- 댓글 리스트 끝-->
</div> </div>