개발새발 블로그
[스프링부트3 자바 백엔드 개발 입문] 6장 - 게시판 페이지 내 이동하기 본문
<a href="/articles/new">New Article</a>
5장 기존에 작성했던 모든 목록을 보여주는 articles 페이지에 새 글을 작성할 수 있는 articles/new 링크를 추가한다.
<a href="/articles">Back</a>
마찬가지로 articles/new 페이지에서도 목록을 볼 수 있는 articles 링크를 추가한다.
여기서 아까 만들었던 Back 버튼을 누르면 정상 실행이 되고,
추가로 Submit 버튼을 눌렀을 때도 목록 링크가 뜨면 좋겠지만, 지금은 WhiteLabel 오류가 뜬다.
이때 사용하는 개념이 리다이렉트다.
@PostMapping("/articles/create")
public String createArticle(ArticleForm form) {
Article article = form.toEntity();
Article saved = articleRepository.save(article);
return "";
}
이전에 작성했던 PostMapping 이다.
dto로 받은 form을 엔티티로 바꾸고, 리포지터리에 저장하는 코드다.
지금은 리턴값이 없다. 리다이렉트를 여기에 정의한다.
return "redirect:주소";
그런데, id가 1번이면 articles/1 을 재요청하라고 지시하고 싶다.
현재는 저장한 엔티티의 id값을 알 수 있는 방법이 없으니까, getter setter를 만들어서 id값을 가져올 수 있도록 한다.
public Long getId(){
return id;
}
메소드 혹은,
롬복으로 @Getter을 추가해주는 방법도 있다.
@PostMapping("/articles/create")
public String createArticle(ArticleForm form) {
Article article = form.toEntity();
Article saved = articleRepository.save(article);
return "redirect:/articles/" + saved.getId();
}
리다이렉트를 포함한 코드이다.
<td><a href="articles/{{id}}">{{title}}</a></td>
추가로, 만약 제목을 누르면 해당 id값의 내용만 보고싶다면, mustache에서 변수 사용하듯이 똑같이 링크를 써주면 된다.
'백 > spring' 카테고리의 다른 글
[스프링부트3 자바 백엔드 개발 입문] 8장 - 게시글 삭제하기: Delete (1) | 2024.01.22 |
---|---|
[스프링부트3 자바 백엔드 개발 입문] 7장 - 게시글 수정하기: Update (0) | 2024.01.21 |
[스프링부트3 자바 백엔드 개발 입문] 5장 - 게시글 읽기:Read (0) | 2024.01.20 |
[스프링부트3 자바 백엔드 개발 입문] 4장 - 롬복과 리팩터링 (0) | 2024.01.17 |
[스프링부트3 자바 백엔드 개발 입문] 3장 - 게시판 CRUD 만들기 (1) | 2024.01.09 |