<a th:href="@{/board/modify/{id}(id=${board.id})}">수정</a>
@GetMapping("/board/modify/{id}")
public String boardModify(@PathVariable("id") Integer id){
return "boardmodify";
}
pathvariable이란?
역슬래시 뒤부분 {id}가 인식이 돼서 Integer형태의 id가 들어온다는 것
boardmodify라는 html파일을 생성
여기서 값이 넘어와야하는데 값을 넘겨주기위해서 컨트롤러로
컨트롤러 수정
@GetMapping("/board/modify/{id}")
public String boardModify(@PathVariable("id") Integer id, Model model){
model.addAttribute("board",boardService.boardView(id));
return "boardmodify";
}
model.addAttribute("board",boardService.boardView(id));
상세 페이지에 있는 글의 내용이랑 수정할때 넘어가는 내용이 같기때문에
이렇게 넘겨준다.
<form action="/board/writepro" method="post">
<input name="title" type="text" th:value="${board.title}">
<textarea name="content" th:text="${board.content}"></textarea>
<button type="submit">작성</button>
<!-- 이 버튼의 역할은 데이터를 전송하는 역할을 한다. type=submit-->
<!-- 이 버튼을 누를시 폼안에 있는 input과 textarea가 board/writedo로 넘어가게된다.-->
</form>
타임리프로 작성해준다.
6.
데이터넘어온 부분은 잘 넘어온것을 볼 수 있다.
<form th:action="@{/board/update/{id}(id = ${board.id})}" method="post">
데이터를 어디로 넘길지 수정.
타임리프문법으로 바꿔준다.
@PostMapping("/board/update/{id}")
public String boardUpdate(@PathVariable("id") Integer id, Board board) {
Board boardTemp = boardService.boardView(id);
boardTemp.setTitle(board.getTitle());
boardTemp.setContent(board.getContent());
boardService.write(boardTemp);
return "redirect:/board/list";
}
(@PathVariable("id") Integer id, Board board)
넘어오는게 id, 이 id를 Integer인 id에 담아주겠다.
넘어오는 데이터(제목, 내용) Board board로 받아온다.
return은 페이지로 넘어올 수 있도록
return "redirect:/board/list";
Board boardTemp = boardService.boardView(id);
boardTemp.setTitle(board.getTitle());
boardTemp.setContent(board.getContent());
boardService.write(boardTemp);
기존에 있던 글을 검색한다.
Board boardTemp = boardService.boardView(id);
board라는 객체 만들어서 기존에 id값을 찾아서 가져오면
여기에 세팅을 한다.
boardTemp.setTitle(board.getTitle());
수정할때 넘어온 데이터(내용, 제목)을 가져오면
Board board -> 이 새로 입력한 내용을
boardTemp.setTitle(board.getTitle());
boardTemp.setContent(board.getContent());
boardService.write(boardTemp); -> 기존에것에 덮어씌우는것이다.
수정버튼을 누르고 수정시 완료된것을 볼 수 있다.
url에 파라미터를 넣을때 방법 2가지
기존에 쓰던 쿼리 스트링
pathvariable 어노테이션을 통해 값을 받아오기
수정할때 기존에것 가져와서 덮어씌우는것