728x90
게시글 수정
boardmodify.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>게시물 작성폼</title>
</head>
<style>
.layout {
width: 500px;
margin: 0 auto;
margin-top: 40px;
}
.layout input {
width: 100%;
box-sizing: border-box;
}
.layout textarea {
width: 100%;
margin-top: 10px;
min-height: 300px;
}
</style>
<body>
<div class="layout">
<form th:action="@{/board/update/{id}(id = ${board.id})}" method="post">
<input name="title" type="text" th:value="${board.title}">
<textarea name="content" th:text="${board.content}"></textarea>
<button type="submit">수정</button>
</form>
</div>
</body>
</html>
BoardController 내용 추가
@GetMapping("/board/modify/{id}")
public String boardModify(@PathVariable("id") Integer id, Model model) {
model.addAttribute("board", boardService.boardView(id));
return "boardmodify";
}
@PostMapping("/board/update/{id}")
public String boardUpdate(@PathVariable("id") Integer id, Board board) { // board: 새로 입력한 내용
Board boardTemp = boardService.boardView(id); // 기존의 내용을 가져옴
// 새로 입력한 내용을 기존의 내용에 덮어씌움
boardTemp.setTitle(board.getTitle());
boardTemp.setContent(board.getContent());
boardService.write(boardTemp); // 글 수정 완료
return "redirect:/board/list";
}
@PathVariable: @GetMapping줄에 있는 id가 @PathVariable의 id로 인식이 되어 Integer 형태의 id로 들어옴
수정 버튼을 클릭하면 @PathVariable은 아래와 같이 /와 숫자로 전달이 된다.
URL에 파라미터를 넘길 때 2가지 방식이 있는데, "view?id=" 형식으로 넘어가는 것은 쿼리 스트링이라고 하고, 위와 같이 넘어가는 것을 PathVariable이라고 한다.
수정할 때의 로직
- 기존의 객체를 불러오고
- 새로 작성한 내용을 덮어씌운 후
- 글을 저장
결과: 안녕 8의 내용 수정하기
728x90
'스프링 부트 > [스프링 부트] 게시판 무작정 따라하기' 카테고리의 다른 글
[스프링 부트] 게시판 무작정 따라하기 - 11. 검색 기능 2편 (0) | 2023.03.13 |
---|---|
[스프링 부트] 게시판 무작정 따라하기 - 10. 검색 기능 1편 (0) | 2023.03.13 |
[스프링 부트] 게시판 무작정 따라하기 - 9. 페이징 처리 2편 (0) | 2023.03.13 |
[스프링 부트] 게시판 무작정 따라하기 - 8. 페이징 처리 1편 (0) | 2023.03.13 |
[스프링 부트] 게시판 무작정 따라하기 - 7. 파일 업로드 (0) | 2023.03.13 |