게시글 수정 만들기
게시글 수정은 어디에서 할까. 바로 boardRead부분이다.
보통 우선 목록에서 읽고 싶은 글을 클릭하고, 그 안에 수정/삭제 버튼이 있게된다.
boardRead
<button id="modify" onclick="location.href='boardModifyForm?num=${data.num}'">수정</button>
<button id="delete" onclick="location.href='boardDelete?num=${data.num}'">삭제</button>
이 소스에 주목할 필요가 있다.
전 글쓰기와 마찬가지로 num이라는 파라미터를 이용한다는 것을 알 수 있다.
순서
1. 수정을 눌러서 수정폼으로 들어간다.
2. 글읽기창과 동일한 내용의 폼이 있으면 깔끔할 것이다.
글읽기 창에 대부분 readonly(수정불가)가 붙었으므로 그것만 제거한다.
3.수정폼에서 수정완료를 누르면 데이터가 변경되면서 리스트화면으로 돌아간다.
1. 수정폼 만들기
BoardController
1 2 3 4 5 6 7 8 | // 게시글 수정폼 @RequestMapping(value="/boardModifyForm") public String boardModifyForm(@RequestParam("num") int num, Model model) throws Exception { BoardVO data = boardService.boardRead(num); model.addAttribute("data", data); return "boardModifyForm"; } | cs |
전 차와 마찬가지로 boardRead에서 num을 가져와 사용한다.
boardService.boardRead(num); 이 부분을 사용하는 이유는
boardRead의 데이터를 재활용하여 읽기폼 / 수정폼을 동일하게 하기 위해서이다.
BoardService
1 2 3 4 | // 게시글 수정폼 public void boardModifyForm(int num) throws Exception { boardMapper.boardModifyForm(num); } | cs |
BoardMapper
1 2 | // 게시글 수정폼 public void boardModifyForm(int num) throws Exception; | cs |
boardModifyForm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <script src='https://code.jquery.com/jquery-3.3.1.min.js'></script> <html> <head> <head> </head> <body> <h2>[게시판 수정]</h2> <form action='<c:url value='/boardModify'/>' method="post"> <div><label>글번호</label> <input name="num" readonly="readonly" value="${data.num}"> </div> <div><label>작성자</label> <input name="writer" readonly="readonly" value="${data.writer}"> </div> <div> <label>제목</label> <textarea rows="5" cols="13" name="title">${data.title}</textarea> </div> <div> <label>내용</label> <textarea rows="5" cols="13" name="content">${data.content}</textarea> </div> <button type="submit">수정완료</button> <button type="button" onclick="location.href='boardList'">돌아가기</button> </form> <input type="hidden" name="num" value="${data.num}"> </body> </html> | cs |
boardRead와 거의 동일하지만 제목, 내용부분은 readonly가 제거되어
수정할 수 있다는 것을 알 수 있다.
여기까지의 내용은 말그대로 수정할 수 있는 틀을 만들어준 것이다.
2. 게시글 수정 만들기
게시글의 내용을 수정하고 수정완료를 누르면 들어가는 곳은
<form action='<c:url value='/boardModify'/> 바로 이곳이다.
BoardController
1 2 3 4 5 6 7 8 | // 게시글 수정 @RequestMapping(value="/boardModify", method= RequestMethod.POST) public String boardModify(BoardVO boardVO) throws Exception { boardService.boardModify(boardVO); return "redirect:boardList"; } | cs |
내용 자체를 수정하는 일이므로 BoardVO를 이용하였다.
수정이 완료될 경우에는 목록으로 되돌아가도록 구현하였다.
BoardService
1 2 3 4 | // 게시글 수정 public void boardModify(BoardVO boardVO) throws Exception { boardMapper.boardModify(boardVO); } | cs |
BoardMapper
1 2 | // 게시글 수정 public void boardModify(BoardVO boardVO) throws Exception; | cs |
BoardMapper.xml
1 2 3 4 5 6 7 | <update id="boardModify" parameterType="BoardVO"> UPDATE hello_board SET title = #{title}, content = #{content}, regdate = now() WHERE num = #{num} </update> | cs |
이렇게 하나하나 매칭해서 update문을 써준다.
'프로그래밍 > SpringBoot' 카테고리의 다른 글
[스프링 부트 게시판] 로그인 기능 / 세션 구현하기 (0) | 2020.10.15 |
---|---|
[스프링 부트 게시판] 게시글 삭제 만들기 (0) | 2020.09.30 |
[스프링 부트 게시판] 게시글 읽기 만들기 (0) | 2020.09.30 |
[스프링 부트 게시판] 게시판 글쓰기 만들기 (0) | 2020.09.30 |
[스프링 부트 게시판] 게시판 리스트 페이징 처리 (0) | 2020.09.30 |