YJ의 새벽
Spring 18 ( 게시글 삭제 ) 본문
---- 삭제는 간단하다.
BOARD_ST = 'N' --> BOARD_ST = 'Y' 로 update 문 사용.
--- @PathVariable 로 boardCode, boardNo 값을 가져와
--boardNo 값으로 DB 접근 ,
--boardCode 값으로 redirect 해주자 .
--삭제버튼 누르면 , 게시글이 삭제되도록 해보자 .
-- 삭제버튼이 화면에 존재할때, 버튼을 누르면 작동하는 이벤트로
함수를 걸어놨다. js 에서 만져보자.
-- boardCode 를 맵핑하기위해 jsp -> js 로 쓰일수있도록 전역변수를 jsp 에 선언해두자.
// 즉시 실행 함수 : 성능up, 변수명 중복 X
(function(){
const deleteBtn = document.getElementById("deleteBtn"); // 존재하지 않으면 null
if(deleteBtn != null){ // 버튼이 화면에 존재할 때
deleteBtn.addEventListener("click", function(){
// 현재 : /board/detail/{boardCode}/{boardNo}
// 목표 : /board/delete/{boardCode}/{boardNo}
console.log(boardCode);
let url = contextPath + "/board/delete/" + boardCode + "/" + boardNo;
// 삭제 성공 -> 해당 게시판 목록 조회 1페이지로 리다이렉트
// 삭제 실패 -> 요청 이전 페이지(referer)로 리다이렉트
// UPDATE BOARD SET
// BOARD_ST = 'Y'
// WHERE BOARD_NO = #{boardNo}
if( confirm("정말로 삭제 하시겠습니까?") ){
location.href = url; // get방식으로 url에 요청
}
});
}
})();
---- 삭제용 Controller
// 게시글 삭제
@GetMapping("/delete/{boardCode}/{boardNo}")
public String deleteBoard(@PathVariable("boardCode") int boardCode,
@PathVariable("boardNo") int boardNo,
RedirectAttributes ra,
@RequestHeader("referer") String referer) {
int result = service.deleteBoard(boardNo);
String path = null;
String message = null;
if(result > 0) {
message = "삭제되었습니다.";
//path = "../../list/" + boardCode; // 상대경로
path = "/board/list/" + boardCode;
} else {
message = "삭제 실패";
path = referer;
}
ra.addFlashAttribute("message", message);
return "redirect:" + path;
}
--- 삭제 Service .
--- 삭제 DAO .
--- 삭제 mapper.xml 쿼리문
'Spring > Spring' 카테고리의 다른 글
Spring ( @Scheduled ) (0) | 2023.05.11 |
---|---|
Spring 19 ( 댓글 , 대댓글 삽입,수정,삭제 ) (1) | 2023.05.10 |
Spring 17 ( 게시글 작성/수정) (0) | 2023.05.08 |
Spring 16 ( pagination + 게시글조회 + 조회수증가(중복x)) (0) | 2023.05.02 |
Spring 15 ( interceptor ) , 게시판 페이지 목록 (0) | 2023.05.01 |
Comments