상세 요청
veiw
<a href="/board/${board.id }" class="btn btn-primary">상세 보기</a>
controller
model.addAttribute("board", boardService.글상세보기(id));
view
${board.title } ${board.content }
글 삭제
view
<button id = "btn-deleteById" class = "btn btn-danger">삭제</button>
<script src="/js/board.js"></script>
js
$.ajax({
type: "DELETE",
url: "/api/board/" + id,
restController
@DeleteMapping("/api/board/{id}")
public ResponseDto<Integer> deleteById(@PathVariable int id) {
boardService.글삭제하기(id);
return new ResponseDto<Integer>(HttpStatus.OK.value(),1);
service
@Transactional
public void 글삭제하기(int id) {
boardRepository.deleteById(id);
}
글수정
view
<a href = "/board/${board.id}/updateForm" class = "btn btn-warning">수정</a>
controller
@GetMapping("/board/{id}/updateForm")
public String updateForm(@PathVariable int id , Model model) {
model.addAttribute("board", boardService.글상세보기(id));
return "board/updateForm";
}
view
<button id = "btn-update" class="btn btn-primary">글수정완료</button>
<script src="/js/board.js"></script>
js
type: "PUT",
url: "/api/board/" + id,
restController
@PutMapping("/api/board/{id}")
public ResponseDto<Integer> updateById(@PathVariable int id,@RequestBody Board board) {
boardService.글수정하기(id,board);
return new ResponseDto<Integer>(HttpStatus.OK.value(),1);
// jackson을 통해 자동으로 json 으로 전달
service
@Transactional
public void 글수정하기(int id , Board requestboard) {
Board board = boardRepository.findById(id)
.orElseThrow(()->{
return new IllegalArgumentException("글 상세보기 실패");
});
board.setTitle(requestboard.getTitle());
board.setContent(requestboard.getContent());
}