목차
• 글 삭제(Delete)
▶ 글 삭제(Delete)
1) 뷰 페이지(qna_board_view.jsp)
- 상세 페이지에서 하단의 ‘삭제’ 버튼을 클릭하면 해당 글을 삭제할 수 있게 한다.
- 이때, 클릭을 하면 click 이벤트가 발생하므로 ‘onClick’ 이벤트로 처리하고, location 객체로 이동할 페이지를 지정한다.
- 페이지를 이동할 때 해당 글의 번호 값(board_num)과 해당 글이 속한 페이지 값(page)를 get 방식으로 전달해야 한다.
- “/BoardDeleteAction.do”로 컨트롤러 클래스를 호출한다.
- qna_board_view.jsp → BoardFrontController.java
2) 컨트롤러 클래스(BoardFrontController.java)
- 상세 페이지(qna_board_view.jsp)에서 “/BoardDeleteAction.do”로 요청한 값을 받아 처리한다.
- forward 객체를 생성해서 전송 방식과 이동할 페이지 경로를 설정한다.
- 상세 페이지에서 ‘삭제’ 버튼 클릭 시 get 방식으로 전달한 값을 받기 위해서는 dispatcher 방식으로 포워딩해야 포워딩된 페이지에서 EL 태그의 param 객체로 값을 받을 수 있다.
(ex. value="${param.board_num}" )
- 뷰 페이지인 글 삭제 폼(qna_board_delete.jsp)으로 포워딩한다.
- BoardFrontController.java → qna_board_delete.jsp
3) 뷰 페이지(qna_board_delete.jsp)
- 글 삭제 폼에서는 비밀번호를 입력하도록 한다.
- 사용자가 입력하는 비밀번호 외에도, <input> 태그의 ‘hidden’ 속성으로 글의 번호 값과 page 값을 전달한다.
- 글 삭제 폼에서 get 방식으로 전달한 값을 EL 태그의 내장 객체인 param으로 받을 수 있다.
(ex. <input type="hidden" name="page" value="${param.page}"> )
- EL 태그를 사용하지 않고 값을 받으려면 request.getParameter()로 받아서 표현식 태그로 출력할 수 있다.
- ‘삭제’ 버튼을 누르면 <form> 태그에서 action으로 지정된 “/BoardDelete.do”로 컨트롤러를 호출한다.
- qna_board_delete.jsp → BoardFrontController.java
4) 컨트롤러 클래스(BoardFrontController.java)
- 뷰 페이지(qna_board_delete.jsp)에서 “/BoardDelete.do”로 요청한 값을 받아 처리한다.
- 서비스 클래스인 BoardDelete의 객체를 생성하고 execute() 메소드를 호출한다.
5) 서비스 클래스(BoardDelete.java)
- 삭제 폼에서 전달하는 값을 받는다.(번호 값, 페이지 값, 비밀번호)
- DB와 연동하기 위해 DAO 객체를 생성하고, 상세 정보를 구하는 getDetail() 메소드를 호출한다.
- DB에 저장된 비밀번호와 사용자가 삭제 폼에서 입력한 비밀번호를 비교한다.
- 비밀번호가 일치하면 삭제(delete)를 하는 메소드를 호출해서 글을 삭제한다.
- 비밀번호가 일치하는 경우, 첨부 파일이 있으면 File 객체를 생성해서 첨부 파일도 삭제한다.
- 비밀번호가 일치하지 않으면 alert() 메소드로 비밀번호가 일치하지 않는다는 알림창을 띄우고, history 객체를 이용해서 수정 폼으로 돌아가도록 설정한다.
- ActionForward 객체를 생성하고 전송 방식과 경로를 설정한 후 리턴한다.
- “/BoardListAction.do”로 컨트롤러를 호출하고, 해당 글이 속한 페이지 값을 get 방식으로 가지고 간다.
- BoardDelete.java → BoardFrontController.java
6) 컨트롤러 클래스(BoardFrontController.java)
- 서비스 클래스(BoardDelete.java)에서 “/BoardListAction.do”로 요청한 값을 받아 처리한다.
- BoardFrontController.java → qna_board_list.jsp
'JSP' 카테고리의 다른 글
78일차: AWS 청구서 / 원격 서버 설정 / 오라클 설정_2021.10.07 (0) | 2021.10.07 |
---|---|
77일차: AWS 주요 서비스 / 계정 생성_ 2021.10.06 (0) | 2021.10.06 |
75일차: Model 2 게시판(3): 댓글 작성 / 글 수정_ 2021.10.01 (0) | 2021.10.01 |
74일차: Model 2 게시판(2): 글 목록 / 상세 페이지_ 2021.09.30 (0) | 2021.09.30 |
73일차: Model 2 게시판(1): 글 작성 / 글 목록_ 2021.09.29 (0) | 2021.09.29 |