본문 바로가기
Spring

[Spring] 사용자에게 alert를 출력하고 redirect 하기 - Controller단에서

by 서피 2021. 5. 7.

컨트롤러에서 로그인 여부를 확인하고, 로그인되지 않았으면 로그인을 해달라고 안내한 후 리디렉션하는 방법이다.

 

원리

attribute에 "메세지", "리디렉션url" 값을 넣어 alert.jsp로 보내준다.

alert.jsp에는 alert를 실행하고 리디렉션하는 javascript가 존재한다.

 

 

1. Controller에서 오류 메세지, 리디렉션할 url 설정한 후 alert.jsp 로 보내기

/application/apply 컨트롤러

 

if (member == null) {
	request.setAttribute("msg", "로그인이 필요합니다.");
	request.setAttribute("url", "/member/login");
	return "alert";
}

지원서를 작성할 때, 로그인 된 사용자만 작성하도록 만들려고 한다.

alert 및 리디렉션을 테스트하기 위해 다른 코드는 아직 작성하지 않았다.

 

member 값이 null일 경우 '로그인이 필요합니다.' 메세지를 출력한 후 /member/login 으로 이동시킨다.

member 값이 존재할 경우 '가입 신청이 완료되었습니다' 메세지를 출력한 후 홈으로 이동시킨다.

 

 

2. alert.jsp에서 alert 출력한 후 리디렉션하기

alert.jsp

<script>
    var msg = "<c:out value='${msg}'/>";
    var url = "<c:out value='${url}'/>";
    alert(msg);
    location.href = url;
</script>

jsp 파일 경로: /views/alert.jsp

jstl을 이용해 msg, url 값을 받아준 후 alert, location.href 순으로 실행시킨다.

 

 

 

3. 실행 결과

alert창이 뜬 모습

로그인되지 않은 경우 '로그인이 필요합니다' 가 출력되며, 확인을 누르면 로그인 페이지로 리디렉션된다.

댓글