데이터 수정 1단계
<수정 페이지>를 생성하고 기존 데이터를 불러옴
<상세 페이지>에서 Edit 버튼 클릭
요청을 받은 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 서버로 전송
컨트롤러는 가져온 데이터를 뷰에서 사용할 수 있도록 모델에 등록
모델에 등록된 데이터를〈수정 페이지〉에서 출력
데이터 수정 2단계
</table>
<a href="/articles/{{article.id}}/edit">Edit</a>
<a href="/articles">Go to Article List</a>
article의 사용 범위를 지정하는 경우
{{#article}}
<tr>
<th>{{id}}</th>
<td>{{title}}</td>
<td>{{content}}</td>
</tr>
{{/article}}
// 부트스트랩 CSS를 적용하여 class="btn btn-primary" 속성 추가
<a href="/articles/{{article.id}}/edit" class="btn btn-primary">Edit</a>
@GetMapping("/articles/new")
public String newArticleForm() {
return "articles/new";
}
(중략)
@GetMapping("/articles/{id}/edit")
public String edit() { // 메소드 생성 및 뷰 페이지 설정
// 뷰 페이지 설정하기
return "articles/edit";
}
@GetMapping("/articles/{id}/edit")
public String edit(@PathVariable Long id) { // id를 매개변수로 받아오기
// 수정할 데이터 가져오기
Article articleEntity = articleRepository.findById(id).orElse(null); // DB에서 수정할 데이터 가져오기
// 뷰 페이지 설정하기
return "articles/edit";
}
public String edit(@PathVariable Long id, Model model) { // model 객체 받아오기
// 수정할 데이터 가져오기
Article articleEntity = articleRepository.findById(id).orElse(null);
// 모델에 데이터 등록하기
model.addAttribute("article", articleEntity); // articleEntity를 article로 등록
// 뷰 페이지 설정하기
return "articles/edit";
}
{{>layouts/header}}
{{#article}} // article 사용 범위 지정
<form class="container" action="" method="post"> // action 속성 값 삭제
(중략)
<input type="text" class="form-control" name="title" value="{{title}}"> // 수정
(중략)
<textarea class="form-control" rows="3" name="content">{{content}}</textarea> // 수정
(중략)
<a href="/articles/{{id}}">Back</a> // 링크 수정
</form>
{{/article}} // article 사용 범위 지정
{{>layouts/footer}}