public void boardDelete(Integer id){
boardRepository.deleteById(id);
}
@GetMapping("/board/delete")
public String boardDelete(Integer id){
boardService.boardDelete(id);
return "redirect:/board/list";
}
redirect?
리다이렉트란? 쉽게 말해서 해당 삭제 기능을 구현하고 난 뒤엔 삭제한 상세페이지는 사라지게 되기 때문에 다른 페이지로 가야하고 이때 우리는 게시글 목록을 보여주는 localhost:8080/board/list로 다시 돌아가서 게시물이 작성된 목록들을 보여주게 된다.
@DeleteMapping이 아닌 @GetMapping을 사용한 이유는?
api를 사용한 통신의 경우엔 @DeleteMapping을 통한 삭제가 가능하지만 form 테그나 uri로 직접 접근하는 경우엔 @DeleteMapping 사용이 불가하다. (이때 hidden 타입의 input 테그를 이용하면 쓸 수는 있지만 잘 사용하지 않는다고 한다.)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>게시글 상세 페이지</title>
</head>
<body>
<h1 th:text ="${board.title}">제목 입니다.</h1>
<p th:text ="${board.content}">내용이 들어갈 부분입니다.</p>
<a th:href="@{/board/delete(id=${board.id})}">글 삭제</a>
</body>
</html>
<a th:href="@{/board/delete(id=${board.id})}">글 삭제</a>