[Spring Boot] #13. 링크와 리다이렉트

gogori6565·2024년 6월 21일
0

스프링 부트 공부

목록 보기
11/20

👉 Mission. 링크와 리다이렉트를 사용하여, 페이지 간 이동을 연결하시오

  • 링크를 사용하면 편리한 요청이 (for Request)
  • 리다이렉트를 사용하면 편리한 응답이 가능 (for Response)

링크와 리다이렉트

링크 (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 [스프링 부트 입문 - 홍팍]

profile
p(´∇`)q

0개의 댓글