Hello

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
}

 

'강의 따라하기 > blog' 카테고리의 다른 글

62. 회원수정1  (0) 2024.01.05
61. 스프링 작동 원리 복습  (0) 2024.01.05
59. 글 삭제하기  (0) 2024.01.04
58. 글 상세보기  (1) 2024.01.04
56. 글목록 보기  (0) 2024.01.04

블로그의 정보

Hello 춘기's world

볼빵빵오춘기

활동하기