게시판 내 페이지 이동하기
링크와 리다이렉트
일반적인 게시판을 보면 버튼을 누르면 어떤 페이지로 넘어가고, 되돌아 갈 수도 있고, 목록 버튼을 누르면 목록이 나오는 등의 링크가 구현되어 있다.
링크 : 미리 정해 놓은 요청을 간편히 전송하는 기능, 페이지 이동을 위해 사용한다.
HTML <a> ,<form> 태그로 작성,
클라이언트가 링크를 통해 어느 페이지로 이동하겠다고 요청하면 서버는 결과 페이지를 응답
<a> <form> : 미리 정해 놓은 요청을 간편히 전송
클라이언트가 요청을 보낼 때 한번에 해결되지 않을 때가 있다.
이런 경우 요청을 하면 요청의 일부만 처리하고 나머지는 다른 링크를 통해 해결하도록 할 수있따
리다이렉트 redirect : 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시하는 것
분리된 기능을 하나의 연속적인 흐름으로 만든다
리다이렉트(재요청) 을 받은 클라이언트는 그 주소로 다시 요청을 보내고, 서버는 또 그 요청을 해결 or 리다이렉트 한다.
지금까지 만든 서버는 /articles 에 들어가면 빈 게시판이 나온다. 이 떄 새 글을 작성하기 위한 링크가 없다.
사용자가 직접 url로 /articles/new 페이지에 접속해야 새글 작성이 가능하다.
입력 페이지에도 마찬가지로 제출만 가능하고 목록으로 돌아가는 등의 연결고리가 없다.
--- 새글 작성 링크 만들기
/articles 에서 바로 새 글을 작성하러 갈 수 있는 링크만들기
/articles 에서는 index.mustache 가 보여지는 중
<a href="/articles/new">New Article</a> 로, 클릭하면 새로운 글 작성하는 페이지로 이동시켜줌
글 쓰고 나서 기존에는 /articles/create 로 갔지만 뷰 페이지가 없었음
이제는 글 작성시 작성한 글 세부 페이지 (/articles/id) 로 이동시키도록
,createArticle 메서드의 return 부분은 "redirect:/articles/" + saved.getId(); 로 변경
이제 글 submit 버튼을 누르면 작성한 글의 id 의 페이지로 바로 이동
상세 페이지에서 목록 페이지로 돌아가기
show.mustache -> index.mustache 로 이동하기만 하면 된다.
<a href = "/articles"> Go to Article List </a>
목록 페이지에서 상세페이지로 이동하기
제목을 클릭하면 해당 글 상세 페이지로 이동할 수 있도록 만들자
index.mustache 에서 클릭한 제목의 id번째 show.mustache로 이동하게 만든다.
<td> {{title}} </td> 였던 기존의 코드를
<td> <a href = "/articles/{{id}}">{{title}}</a></td> 로 변경
제목에 링크를 걸어서 /articles/id 로 이동할 수 있도록 한다.