웹에서 URL로 웹 서버를 요청하면 다른 URL로 넘겨주는것 만약에 게임 시작을 눌렀는데 로그인이 안되어있을땐 로그인화면으로 이동시켜주는 것을 리다이렉트라고한다.
예를들어 다음과 같은 view를 가진 게시판이 있다.
<a th:href="@{/board/delete(id=${board.id})}">글 삭제</a>
이 태그가 포함된 글삭제 글씨를 누른다면
@GetMapping("/board/delete")
public String boardDelete(Integer id){
boardService.boardDelete(id);
return "redirect:/board/list";
}
/board/delete 으로 이동하게 되어 boardDelete 메소드를 처리한다.
그때 리턴값은 return "redirect:/board/list" 이다. 때문에 /board/list를 리다이렉트해준다. 그렇다면 결과는
/board/list 으로 이동되었다.
근데 여기서 은근 헷갈리는게 return "view이름"과 return "redirect:url" 일 수 있다.
이 둘의 차이를 비교해보자면
: 단순하게 해당하는 view를 보여준다
: url주소로 request를 다시한다. 위의 예시로 설명하자면
@GetMapping("/board/list")
public String boardList(Model model){
model.addAttribute("list", boardService.boardList());
return "boardlist";
}
저기서 글 삭제 버튼을 누른다면 이 /board/list 주소로 리다이렉트되어 boardList 메소드를 실행하여 boardList라는 View를 보여준다는 말이다.