게시판8) 글수정
in Web Dev on Java Spring
- 글보기에서 글수정 버튼을 누르면 글 수정 가능한 폼이 나오게 하고 수정을 누르면 글이 재등록되게 할 것이다.
boardController
- 왼쪽 페이지 - 글 수정 버튼을 누르면, boardseq의 값도 넘어간다.
- 오른쪽 페이지 - 수정 버튼을 누르면 board 객체의 정보가 수정되고, boardlist로 redirect된다.
@RequestMapping("/boardupdate")
public String boardUpdate(int boardseq, Model model) {
Board board = repository.boardDetail(boardseq);
model.addAttribute("board",board);
return "board/boardUpdate";
}
@RequestMapping(value = "/boardupdate", method = RequestMethod.POST)
public String boardUpdate(Model model, Board board) {
int result = repository.boardUpdate(board);
return "redirect:boardlist";
}
boardupdate.jsp
boardList 페이지에서 받은 boardseq를 controller의 boardUpdate method 의 board에 set해야한다.
아래와 같이 hidden 태그를 사용해 폼에 넣어서 보내도록 한다. (화면에 boardseq가 출력되는 부분이 딱히 없어서 hidden 으로 보내준다. 글고 중요한 정보니까 꼭 보내야한다.)
<input type="hidden" name="boardseq" value="${board.boardseq }">
input 태그에 “${board.가져올변수}” 가 들어간다. 수정이니까 아예 공백으로 폼을 주면 당황스럽다.
<body> <div class = "wrapper"> <h1> [ 글 수 정 ]</h1> <form id ="" action ="boardupdate" method = "POST"> <!-- 꼭 필요! board seq hidden 으로 보내준다. --> <input type="hidden" name="boardseq" value="${board.boardseq }"> <table border ="1"> <tr> <th>글쓴이</th> <td>${sessionScope.loginName}</td> </tr> <tr> <th>제목</th> <td><input type = "text" name ="title" value = "${board.title }" required ></td> </tr> <tr> <th>첨부파일</th> <td><input type= "file" ></td> </tr> <tr> <th>글내용</th> <td><textarea rows="10" cols = "50" name="message" required>${board.message }</textarea></td> </tr> <tr> <th colspan="2"><input type = "button" value = "목록으로" onclick = "boardList();"> <input type = "submit" value="수정"></th> </tr> </table> </form> </div> </body>
repository
public int boardUpdate(Board board) {
BoardMapper mapper = session.getMapper(BoardMapper.class);
int result = mapper.boardUpdate(board);
return result;
}
mapper.xml
<update id = "boardUpdate" parameterType = "Board">
UPDATE
board
SET
title = #{title}
, message = #{message}
WHERE
boardseq = #{boardseq}
</update>
◇ Spring 게시판 포스팅 시리즈 ◇