2013-03-28 4 views
2

나는 인터셉터를 사용하여 앱의 특정 사용자에 대한 액세스를 제한하고 있습니다. 예 :스프링 MVC 3 : 인터셉터가 거짓보기로 돌아 가기

@Override 
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception 
{ 
    Logger.logRequest(request); 
    return list.contains(user); 
} 

목록에 사용자가 포함되어 있으면 요청을 완료합니다. 그렇지 않으면 아무것도 수행하지 않습니다.

사용자가 액세스 할 수없는 경우 어떻게 사용자 정의 페이지를 표시합니까? 지금은 틀린 경우 빈 페이지가 표시되어 사용자 경험에 좋지 않습니다.

+0

요청에서 RequestDispatcher를 사용하여 일부 JSP로 전달할 수 있습니다. 또는 리디렉션을 보낼 수 있습니다. –

답변

7

서블릿을 치지 않고도 응답 리디렉션을 할 수있는 것처럼 보입니다. 다음은 작동합니다 :

if (list.contains(user)) 
     return true; 
    else 
    { 
     //set up the view 
     response.sendRedirect("nope_view"); 
     return false; 
    } 
+2

명명에주의하십시오. 리디렉션에 전달한 문자열은보기 이름이 아니지만 실제로는 새 요청을 만듭니다. –

+0

알림을 보내 주셔서 감사합니다. 다른 서블릿이나 정적 뷰로 리디렉션해야 할 것입니다. – Jason

관련 문제