+답글 2차 (폼~)
qna_board_reply.jsp : <form action="<%=request.getContextPath() %>/BoardReply.do" method="post" >
↓
BoardFrontController.java : action= new BoardReply();
↓
BoardReply.java : DAO로 답글 등록
↓
BoardFrontController.java : forward.setPath("./board/qna_board_list.jsp");
↓
qna_board_list.jsp (View)
qna_board_reply.jsp
- hidden으로 num, ref, lev, seq, page 넘김
- 제목에 Re: 붙게 처리, 내용에 부모글 내용 나오게 처리
BoardReply.java
- 폼에서 넘긴 값 가져옴 : request.getParameter();
- DAO에 insert 처리 : dao.boardReply(board)
- list로 포워딩 (page값 가지고) + request로 공유하는 값 따로 없으니 redirect 방식 사용
+수정
qna_board_view.jsp : <input type=button value="수정" onClick="location.href='./BoardModifyAction.do?num=${board.board_num}&page=${page}'">>
↓
BoardFrontController.java : action= new BoardModifyAction();
↓
BoardModifyAction.java : view에서 받아온 num으로 상세정보 가져와서 request 영역에 공유
↓
BoardFrontController.java : forward.setPath("./board/qna_board_modify.jsp");
↓
qna_board_modify.jsp : <form action="<%=request.getContextPath() %>/BoardModify.do" method="post">
↓
BoardFrontController.java : action= new BoardModify();
↓
BoardModify.java : 폼에서 받은 값을 update -> 받은 값 인코딩 필수
request.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=UTF-8");
↓
BoardFrontController.java : forward.setPath("/BoardDetailAction.do?num="+board_num+"&page="+page);
↓
qna_board_view.jsp (View)
+삭제
qna_board_view.jsp : <input type=button value="삭제" onClick="location.href='./BoardDeleteAction.do?num=${board.board_num}&page=${page}'">
↓
BoardFrontController.java : forward.setPath("./board/qna_board_delete.jsp");
↓
qna_board_delete.jsp : request영역으로 공유된 값 없음 -> parameter로 받아야 하므로, view에서 받은 값을 ${param.page}같은 방식으로 가져와서 hidden으로 넘겨줌
↓
BoardFrontController.java : forward.setPath("./board/BoardDelete.jsp");
↓
BoardDelete.java : 받은 pass 값 기존 DB와 비교하고 num을 넘겨서 delete 처리 + 첨부파일 삭제
↓
BoardFrontController.java : forward.setPath("./board/qna_board_list.jsp"); :page 같이 넘김
↓
qna_board_list.jsp (View)
BoardDelete.java
- 받은 pass 값 기존 DB와 비교하고 맞으면 : if(old.getBoard_pass().equals(board_pass))
1. delete 처리 : int result=dao.delete(board_num);
2. 첨부파일 삭제
- 첨부파일 저장되는 경로 구함: String path=request.getRealPath("boardupload");
- DB에 저장된 첨부파일명이 있다면(=첨부파일이 존재한다면) 파일 객체 생성
if(old.getBoard_file()!="") {
File file=new File(path);
file.mkdir(); //경로에 디렉토리 생성.. 이미 있는경우 생략하고 넘어감
- 경로의 모든 첨부파일을 리스트에 저장
File[] f=file.listFiles();
- 리스트의 파일명과 DB에 저장된 첨부파일명이 동일한 파일이 있다면 삭제함
for(int i=0; i<f.length; i++) {
if(f[i].getName().equals(old.getBoard_file())) {
f[i].delete();
}
}
'수업 > 정리' 카테고리의 다른 글
220405 깃허브 (0) | 2022.04.05 |
---|---|
220404 프로젝트 사전작업_aws 환경 (0) | 2022.04.04 |
220331 Model2_글목록, 답글1 (0) | 2022.03.31 |
220330 Model2_원글 작성 (0) | 2022.03.30 |
220329 model2_ 로그인/아웃, 메인, 정보 수정/삭제 (0) | 2022.03.29 |