2013-03-28 46 views
2

我使用攔截器來限制對應用程序中某些用戶的訪問。例如:Spring 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

看起來您可以在不碰到servlet的情況下做出響應重定向。以下工作:

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

小心使用命名。傳遞給重定向的字符串不是視圖名稱,而是實際發出新的請求。 –

+0

感謝您的提醒。我將不得不重定向到另一個servlet或靜態視圖。 – Jason