📌 BoardController.java 추가
@RequestMapping("updateForm")
public String updateForm (HttpServletRequest request, HttpServletResponse response) {
//num : 게시물 번호. 파라미터값 저장
int num = Integer.parseInt(request.getParameter("num"));
//num에 해당하는 정보를 db에서 읽어서 Board 객체에 저장
Board b = dao.selectOne(num);
request.setAttribute("b",b);
return "/view/board/updateForm.jsp";
}
📌 updateForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%-- /jsp3/src/main/webapp/view/board/updateForm.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시글 수정</title>
<script>
function file_delete() {
document.f.file2.value="";
file_desc.style.display="none";
}
</script>
</head>
<body>
<hr>
<div class="container">
<form name="f" action="update" enctype="multipart/form-data" method="post">
<input type="hidden" name="file2" value="${b.file1}">
<input type="hidden" name="num" value="${b.num}">
<h2 id="center">게시글 수정</h2>
<div class="form-group">
<label>작성자:</label>
<input type="text" class="form-control" name="writer" readonly="readonly" value="${b.writer}">
<label>비밀번호:</label>
<input type="password" class="form-control" name="pass">
<label>제목:</label>
<input type="text" class="form-control" name="subject" value="${b.subject}">
</div>
<div class="form-group">
<label>내용</label><textarea class="form-control" rows="10" cols="50" name="content">${b.content}</textarea>
</div>
<c:if test="${!empty b.file1}">
<div id="file_desc" class="form-group">${b.file1}
<a href="javascript:file_delete()">[첨부파일 삭제]</a>
</div>
</c:if>
<div class="form-group">
<label>파일 저장:</label>
<input type="file" class="form-control" name="file1">
</div>
<div id="center" style="padding:3px;">
<button type="submit" class="btn btn-dark">수 정</button>
</div>
</form>
</div>
</body>
</html>
📌 BoardController.java 추가
1. 파일 업로드 하기
2. 파라미터 정보를 Board 객체 저장
3. 비밀번호 불일지
비밀번호 오류 메세지 출력하고, updateForm 페이지로 이동
4. 비밀번호 일치
첨부파일의 변경이 없는 경우 file2 파라미터의 내용을 file1 프로퍼티에 저장
파라미터의 내용으로 해당 게시물의 내용을 수정하기
boolean BoardDao.update(Board)
수정 성공 : 수정성공 메세지 출력 후 info 페이지로 이동
수정 실패 : 수정실패 메서지 출력 후 updateForm 페이지로 이동
@RequestMapping("update")
public String update (HttpServletRequest request, HttpServletResponse response) {
//1. 파일 업로드 하기
String path=getServletContext().getRealPath("/")+"/upload/"; //파일 업로드 되는 폴더 위치
int size=10*1024*1024; //파일의 크기
MultipartRequest multi = null;//파일 업로드 부분
try {
multi = new MultipartRequest(request,path,size,"UTF-8");
} catch(IOException e) {
e.printStackTrace();
}
//2. 파라미터값 Board 객체저장
Board board = new Board();
board.setNum(Integer.parseInt(multi.getParameter("num")));
board.setWriter(multi.getParameter("writer"));
board.setPass(multi.getParameter("pass"));
board.setSubject(multi.getParameter("subject"));
board.setContent(multi.getParameter("content"));
board.setFile1(multi.getFilesystemName("file1"));//파일이름
if(board.getFile1() == null || board.getFile1().equals("")) {
board.setFile1(multi.getParameter("file2"));
}
//3. 비밀번호 일치, 불일치
String msg = "비밀번호가 틀렸습니다.";
String url = "updateForm?num=" + board.getNum();
Board dbBoard = dao.selectOne(board.getNum());
if(board.getPass().equals(dbBoard.getPass())) {
//db 내용 수정
if(dao.update(board)) {
msg = "게시물이 변경 되었습니다.";
url = "info?num=" + board.getNum();
} else {
msg = "게시물 변경시 오류가 있습니다.";
}
}
request.setAttribute("msg",msg);
request.setAttribute("url", url);
return "/view/alert.jsp";
}
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL2 방식 - 답변 달기(replyForm, BoardController, BoardDao, list) (0) | 2023.04.20 |
|---|---|
| [JSP] MVC MODEL2 방식 - 게시물 상세보기, 조회수 증가(info, BoardDao, BoardController) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 관리자 공지사항 작성(list) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 로그인 시 화면 list 변화(kiclayout, layout) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 게시글 목록(list) (0) | 2023.04.20 |