jspblog : write reply

This commit is contained in:
kim
2021-01-22 15:52:57 +09:00
parent 75d116b884
commit c9110a6c78
5 changed files with 87 additions and 6 deletions

View File

@@ -1,4 +1,31 @@
package com.example.jspblog.domain.reply; package com.example.jspblog.domain.reply;
import com.example.jspblog.config.DB;
import com.example.jspblog.domain.reply.dto.SaveReqDto;
import java.sql.Connection;
import java.sql.PreparedStatement;
public class ReplyDao { public class ReplyDao {
public int save(SaveReqDto dto) {
String sql = "insert into reply(userId, boardId, content, createDate) values(?, ?, ?, now())";
Connection conn = DB.getConnection();
PreparedStatement pstmt = null;
if (conn != null) {
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, dto.getUserId());
pstmt.setInt(2, dto.getBoardId());
pstmt.setString(3, dto.getContent());
int result = pstmt.executeUpdate();
return result;
} catch (Exception e) {
e.printStackTrace();
} finally {
DB.close(conn, pstmt);
}
}
return -1;
}
} }

View File

@@ -0,0 +1,13 @@
package com.example.jspblog.domain.reply.dto;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class SaveReqDto {
private int userId;
private int boardId;
private String content;
}

View File

@@ -1,4 +1,17 @@
package com.example.jspblog.service; package com.example.jspblog.service;
import com.example.jspblog.domain.reply.ReplyDao;
import com.example.jspblog.domain.reply.dto.SaveReqDto;
public class ReplyService { public class ReplyService {
private final ReplyDao replyDao;
public ReplyService() {
this.replyDao = new ReplyDao();
}
public int 댓글쓰기(SaveReqDto dto) {
return replyDao.save(dto);
}
} }

View File

@@ -1,13 +1,19 @@
package com.example.jspblog.web; package com.example.jspblog.web;
import com.example.jspblog.domain.reply.dto.SaveReqDto;
import com.example.jspblog.service.BoardService;
import com.example.jspblog.service.ReplyService;
import com.example.jspblog.util.Script;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet; import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
@WebServlet(name = "reply") @WebServlet("/reply")
public class ReplyController extends HttpServlet { public class ReplyController extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response); doProcess(request, response);
@@ -19,11 +25,29 @@ public class ReplyController 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");
ReplyService replyService = new ReplyService();
HttpSession session = request.getSession();
if(cmd.equals("loginForm")) { switch (cmd) {
case "save": {
int userId = Integer.parseInt(request.getParameter("userId"));
int boardId = Integer.parseInt(request.getParameter("boardId"));
String content = request.getParameter("content");
} else if (cmd.equals("login")) { SaveReqDto dto = SaveReqDto.builder()
.userId(userId)
.boardId(boardId)
.content(content)
.build();
int result = replyService.댓글쓰기(dto);
if (result == 1) {
response.sendRedirect("/jspblog/board?cmd=detail&id=" + boardId);
} else {
Script.back(response, "댓글쓰기 실패");
}
break;
}
} }
} }
} }

View File

@@ -31,9 +31,13 @@
<div class="panel panel-info"> <div class="panel panel-info">
<div class="panel-heading m-2"><b>Comment</b></div> <div class="panel-heading m-2"><b>Comment</b></div>
<div class="panel-body"> <div class="panel-body">
<textarea id="reply__write__form" class="form-control" placeholder="write a comment..." rows="2"></textarea> <form action="${pageContext.request.contextPath}/reply?cmd=save" method="post">
<br> <input type="hidden" name="userId" value="${sessionScope.principal.id}">
<button onclick="" class="btn btn-primary pull-right">댓글쓰기</button> <input type="hidden" name="boardId" value="${detail.id}">
<textarea id="reply__write__form" name="content" class="form-control" placeholder="write a comment..." rows="2"></textarea>
<br>
<button class="btn btn-primary pull-right">댓글쓰기</button>
</form>
<div class="clearfix"></div> <div class="clearfix"></div>
<hr /> <hr />