60. 글 수정하기
by 볼빵빵오춘기BoardController
@GetMapping("/board/{id}/updateForm") public String UpdateForm(@PathVariable int id,Model model){ model.addAttribute("board",boardService.글상세보기(id)); return "board/updateForm"; }
updateForm.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8 " pageEncoding="UTF-8"%> <%@ include file="../layout/header.jsp"%> <div class="container"> <h2>Stacked form</h2> <form> <input type="hidden" id="id" value="${board.id}" /> <div class="form-group"> <label for="title">Title:</label> <input type="text" value="${board.title}" class="form-control" id="title" placeholder="Enter title" name="title"> </div> <div class="form-group"> <label for="content">Content:</label><br> <textarea class="form-control summernote" rows="5" id="content">"${board.content}"</textarea> </div> </form> <button id="btn-update" class="btn btn-primary">글수정완료</button> </div> <script> $('.summernote').summernote({ placeholder: 'Write Content', tabsize: 2, height: 300 }); </script> <script src="/js/board.js"></script> <%@ include file="../layout/footer.jsp"%>
board.js
$("#btn-update").on("click",()=>{ this.update(); });
update: function(){ let id = $("#id").val(); let data = { title: $("#title").val(), content: $("#content").val() } $.ajax({ type: "PUT", url: "/api/board/"+id, data: JSON.stringify(data), contentType: "application/json; charset=utf-8", dataType: "json" }).done(function(resp){ // alert(resp); alert("글 수정이 완료 되었습니다.") location.href="/"; }).fail(function(error){ alert("js 글수정이 호출"+JSON.stringify(error)); }); },// update end
BoardApiController
@PutMapping("/api/board/{id}") public ReplySaveRequestDto.ResponseDto<Integer> update(@PathVariable int id, @RequestBody Board board, Model model){ boardService.글수정하기(id,board); return new ReplySaveRequestDto.ResponseDto<Integer>(HttpStatus.OK.value(),1); }
BoardService
@Transactional public void 글수정하기(int id, Board requestBoard) { Board board = boardRepository.findById(id) .orElseThrow(()->{ return new IllegalArgumentException("글 찾기 실패 : 아이디를 찾을 수 없습니다."); }); // 영속화 완료 board.setTitle(requestBoard.getTitle()); board.setContent(requestBoard.getContent()); // 해당 함수로 종료시(Service가 종료될 때) 트랜잭션이 종료. 이 때 더티체킹 - 자동 업데이트가 됨. db flush }

블로그의 정보
Hello 춘기's world
볼빵빵오춘기