👉 Mission. 링크와 리다이렉트를 사용하여, 페이지 간 이동을 연결하시오
링크 (Link) : 미리 정해놓은 요청을 간편히 전송하는 것 (HTML의 <a>
, <form>
, …), 이렇게 보내진 요청은 결과 페이지로 응답한다.
<a href="/articles">Back</a>
리다이렉트(Redirect) : 클라이언트에게 재요청을 지시하는 것, 재요청을 받은 클라이언트는 리다이렉트 주소에 따라서 다시 요청을 보냄
/articles/new
에서 글 작성 후, articles/{게시글 ID}
url 페이지로 이동하는 것을 리다이렉트라고 함! 📌 링크(Link) 만들기
목표 : 제목(Title)을 누를 경우, 해당 글만 볼 수 있는 페이지(/articles/{id}
)로 이동하기
"index.mustache"
의 title을 작성하는 부분에 <a>
태그로 링크 걸어주기!
이를 통해, title인 1111을 누르면 /articles/1
로 이동할 수 있다!
📌 리다이렉트(Redirect) 만들기
목표: /articles/new
에서 글 작성 후, articles/{게시글 ID}
url 페이지로 이동해 작성한 글 보기
1. 글 작성하는 controller의 return 설정해주기
파일명 : controller/ArticleController.java
@PostMapping("/articles/create")
public String createArticle(ArticleForm form) {
//1. Dto를 Entity로 변환!
Article article = form.toEntity();
log.info(article.toString());
//2. Repository에게 Entity를 DB안에 저장하게 함!
Article saved = articleRepository.save(article); //.save() - CrudRepository에 정의되어 있는 기능 사용
log.info(saved.toString());
return "redirect:/articles/" + saved.getId();
}
"redirect:/articles/" + saved.getId()
: 리다이렉트 설정, 만들어진 Entity를 담은 saved에서 ID값을 가져와 주소를 설정해줌 (articles/{게시글 ID}
url 페이지로 이동할 거니까)
그럼 saved.getID()
사용을 위해 Article.java 파일에 Getter를 설정해줘야 함!
2. Article.java에 Getter 만들기
파일명 : entity/Article.java
public Long getId() {
return id;
}
이렇게 직접 만들어줘도 되지만, 롬복을 사용해서 Getter를 추가하는 것이 간편하다!
(인텔리제이도 노란줄 치면서 롬복 쓰라고 한다)
<결과 화면> - 글 작성 후 submit 요청 보내면 나오는 화면!
링크 (Link) : 미리 정해놓은 요청을 간편히 전송하는 것 (HTML의 <a>
, <form>
, …), 이렇게 보내진 요청은 결과 페이지로 응답한다.
리다이렉트(Redirect) : 클라이언트에게 재요청을 지시하는 것, 재요청을 받은 클라이언트는 리다이렉트 주소에 따라서 다시 요청을 보냄
return "";
에서 ""
안에 redirect:
를 통해 리다이렉트를 원하는 링크를 작성해준다.강의 출처 : https://www.youtube.com/watch?v=_vDACE13Ubc&list=PLyebPLlVYXCiYdYaWRKgCqvnCFrLEANXt&index=1 [스프링 부트 입문 - 홍팍]