Detail.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="../layout/header.jsp"%>
<div class="container">
<button class="btn btn-secondary" onclick="history.back()">돌아가기</button>
<button id="btn-update" class="btn btn-warning">수정</button>
<c:if test="${board.user.id == principal.user.id}"> <!-- 글 작성자만 삭제가능 -->
<button id="btn-delete" class="btn btn-danger">삭제</button>
</c:if>
<br><br>
<div>
글 번호 : <span id = "id"><i>${board.id } </i></span>
작성자 : <span><i>${board.user.userName } </i></span>
</div>
<br>
<div>
<h3>${ board.title }</h3>
</div>
<hr>
<div>
<div>${board.content }</div>
</div>
<hr>
</div>
<script src="/js/board.js"></script>
<%@ include file="../layout/footer.jsp"%>
board.js
let index = {
init: function(){
$("#btn-delete").on("click",()=>{
this.deleteById();
});
}
,deleteById: function(){
let id = $("#id").text();
$.ajax({
type:"DELETE",
url:"/api/board/"+id,
dataType:"json"
}).done(function(resp){
alert("글삭제가 완료되었습니다.");
console.log(resp)
location.href="/";
}).fail(function(error){
alert(JSON.stringify(error));
});
}
}
index.init();
BoardApiController.java
@DeleteMapping("api/board/{id}")
public ResponseDto<Integer> deleteById(@PathVariable int id){
boardService.글삭제하기(id);
return new ResponseDto<Integer>(HttpStatus.OK.value(), 1); // 1 리턴시 정상
}
BoardService.java
@Transactional
public void 글삭제하기(int id) {
boardRepository.deleteById(id);
}