오늘 포스팅에서는 게시글 삭제 기능을 구현해 보자.
게시글 삭제는 다른 기능에 비하면 간단하다. 😉
...
// 게시글 삭제 버튼이 클릭 되었을 때
document.getElementById("deleteBtn").addEventListener("click", () => {
if(confirm("정말 삭제 하시겠습니까?")){
location.href
= location.pathname.replace("board","board2")
+ "/delete";
+ location.search;
// /board2/1/2006/delete (GET)
}
})
...
// 게시글 삭제
@GetMapping("/{boardCode}/{boardNo}/delete")
public String boardDelete(
@PathVariable("boardCode") int boardCode
,@PathVariable("boardNo") int boardNo
,RedirectAttributes ra
,@RequestHeader("referer") String referer ) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("boardCode", boardCode);
map.put("boardNo", boardNo);
int result = service.boardDelete(map);
String path = "redirect:";
String message = null;
if(result > 0) {
message = "삭제 되었습니다.";
path += "/board/"+ boardCode;
}else {
message = "삭제 실패";
path += "/board/" + boardCode + "/" + boardNo;
//path += referer;
}
ra.addFlashAttribute("message", message);
return path;
}
...
/** 게시글 삭제
* @param map
* @return result
*/
int boardDelete(Map<String, Object> map);
...
// 게시글 삭제
@Transactional(rollbackFor = Exception.class)
@Override
public int boardDelete(Map<String, Object> map) {
return dao.boardDelete(map);
}
...
/** 게시글 삭제
* @param map
* @return result
*/
public int boardDelete(Map<String, Object> map) {
return sqlSession.update("boardMapper.boardDelete", map);
}
...
<!-- 게시글 삭제 -->
<update id="boardDelete">
UPDATE "BOARD" SET
BOARD_DEL_FL = 'Y'
WHERE BOARD_CODE = #{boardCode}
AND BOARD_NO = #{boardNo}
</update>