+답글 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

+ Recent posts