board_content.jsp에서 미리 만든 버튼을 눌렀을 때 수정 폼 페이지로 갈 수 있게 만들어보자!

입력했던 값을 가져와야 하기 때문에 mapping.properties에 action부분에 작성하자

인터페이스 Action을 구현 할 BoardModifyAction 클래스 생성
수정 버튼을 눌렀을 때 입력 받은 값들을 가져와야하기 때문에 이전에 생성한 contentBoard메서드 가져오기!
=============================코드=============================
package com.board.action;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.board.model.BoardDAO;
import com.board.model.BoardDTO;
public class BoardModifyAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
int modi_num = Integer.parseInt(request.getParameter("no").trim());
int modi_page = Integer.parseInt(request.getParameter("page").trim());
BoardDAO dao = BoardDAO.getInstance();
BoardDTO modify = dao.contentBoard(modi_num);
request.setAttribute("Modify", modify);
request.setAttribute("ModiPage", modi_page);
ActionForward forward = new ActionForward();
forward.setRedirect(false);
forward.setPath("view/board_modify.jsp");
return forward;
}
}
view -> board_modify.jsp 생성
=============================코드=============================
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center">
<c:set var = "modi" value = "${Modify }" />
<hr width = "30%" color = "green">
<h3>${modi.getBoard_writer() } 상세 수정 페이지</h3>
<hr width = "30%" color = "green">
<br/> <br/>
<form method = "post" action = "<%=request.getContextPath() %>/modify_ok.go?page=${ModiPage }">
<input type = "hidden" name = "num" value = "${modi.getBoard_no() }">
<input type = "hidden" name = "db_pwd" value = "${modi.getBoard_pwd() }">
<table border = "1" align = "center" width = "350">
<tr>
<th>작성자</th>
<td>
<input type = "text" name = "writer" value = "${modi.getBoard_writer() }">
</td>
</tr>
<tr>
<th>글 제목</th>
<td>
<input type = "text" name = "title" value = "${modi.getBoard_title() }">
</td>
</tr>
<tr>
<th>글 내용</th>
<td>
<textarea rows="7" cols="30" name = "cont" >${modi.getBoard_cont() }</textarea>
</td>
</tr>
<tr>
<th>글 비밀번호</th>
<td>
<input type = "password" name = "pwd" value = "${modi.getBoard_pwd() }">
</td>
</tr>
</table>
<br/>
<input type = "submit" value = "수정 완료">
<input type = "reset" value = "다시 작성">
</form>
</div>
</body>
</html>
수정폼에서 입력된 값들을 DB에 저장하여 화면에 출력할 수 있게 만들자
post 방식으로 건네받을 modify_ok.go를 만들자
mapping.properties에서 action으로 작성!

인터페이스 Action을 구현할 BoardModifyOkAction 클래스 생성
=============================코드=============================
package com.board.action;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.board.model.BoardDAO;
import com.board.model.BoardDTO;
public class BoardModifyOkAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
int board_page = Integer.parseInt(request.getParameter("page").trim());
String board_writer = request.getParameter("writer").trim();
String board_title = request.getParameter("title").trim();
String board_cont = request.getParameter("cont").trim();
String board_pwd = request.getParameter("pwd").trim();
// hidden
int board_num = Integer.parseInt(request.getParameter("num").trim());
String db_pwd = request.getParameter("db_pwd").trim();
BoardDTO dto = new BoardDTO();
dto.setBoard_no(board_num);
dto.setBoard_writer(board_writer);
dto.setBoard_title(board_title);
dto.setBoard_cont(board_cont);
dto.setBoard_pwd(board_pwd);
BoardDAO dao = BoardDAO.getInstance();
dao.modifyOk(dto);
BoardDAO에서 modifyOk 메서드 생성
=============================코드=============================
// 수정 완료
public int modifyOk(BoardDTO dto) {
int result = 0;
try {
openConn();
sql = "update board set board_writer = ?, board_title = ?, board_cont = ? where board_no = ?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getBoard_writer());
pstmt.setString(2, dto.getBoard_title());
pstmt.setString(3, dto.getBoard_cont());
pstmt.setInt(4, dto.getBoard_no());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConn(pstmt, con);
}
return result;
}
다시 BoardModifyOkAction 클래스로 가자
=============================코드=============================
package com.board.action;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.board.model.BoardDAO;
import com.board.model.BoardDTO;
public class BoardModifyOkAction implements Action {
@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws IOException {
int board_page = Integer.parseInt(request.getParameter("page").trim());
String board_writer = request.getParameter("writer").trim();
String board_title = request.getParameter("title").trim();
String board_cont = request.getParameter("cont").trim();
String board_pwd = request.getParameter("pwd").trim();
// hidden
int board_num = Integer.parseInt(request.getParameter("num").trim());
String db_pwd = request.getParameter("db_pwd").trim();
BoardDTO dto = new BoardDTO();
dto.setBoard_no(board_num);
dto.setBoard_writer(board_writer);
dto.setBoard_title(board_title);
dto.setBoard_cont(board_cont);
dto.setBoard_pwd(board_pwd);
BoardDAO dao = BoardDAO.getInstance();
PrintWriter out = response.getWriter();
if(board_pwd.equals(db_pwd)) {
// -------------------여기서부터 작성-------------------
int check = dao.modifyOk(dto);
if(check > 0) {
out.println("<script>");
out.println("alert('게시글 수정 완료!')");
out.println("location.href='content.go?no=" + dto.getBoard_no() + "&page=" + board_page + "'");
out.println("</script>");
}else {
out.println("<script>");
out.println("alert('게시글 수정 실패...')");
out.println("history.back()");
out.println("</script>");
}
}else {
out.println("<script>");
out.println("alert('비밀번호를 확인하세요!!!!')");
out.println("history.back()");
out.println("</script>");
}
return null;
}
}
=============================실행=============================


게시글 제목 클릭!

글 수정 클릭


확인 클릭

수정이 된 것을 확인할 수 있음!