@GetMapping("/board/{id}/updateForm") public String updateForm(@PathVariableint id , Model model){ model.addAttribute("board", boardService.postDetail(id)); return"board/updateForm"; }
let index = { init : function(){ $("#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), //자바가 js 객체를 인식못해서 json으로. contentType: "application/json; charset=utf-8", //바디 데이터가 어떤 타입인지 dataType : "json" }).done(function (resp) {//resp에는 json객체가 있겠죠. //성공시 수행 console.log(resp); alert("글수정 완료!"); location.href = "/"; //응답이 정상일때 출력할 링크 }).fail(function (error) { //실패시 수행 alert(JSON.stringify(error)); //에러도 json객체로 바꿈
});//ajax 통신을 이용해서 2개의 데이터를 json으로 변경해 insert요청! }, ``` ### 서비스에 메소드 추가 ```java @Transactional public voidupdatePost(int id, Board requestBoard){ Board board = boardRepository.findById(id) .orElseThrow(()->{ returnnew IllegalArgumentException("글 수정 실패 : id를 찾지 못함"); }); //영속성 로드 board.setTitle(requestBoard.getTitle()); board.setContent(requestBoard.getContent()); }
REST 컨트롤러에 메소드 추가
1 2 3 4 5
@PutMapping("/api/board/{id}") public ResponseDto<Integer> update(@PathVariableint id , @RequestBody Board board){ boardService.updatePost(id, board); returnnew ResponseDto<Integer>(HttpStatus.OK.value(), 1);//정상작동을 알림 }