【问题标题】:Spring MVC 3: Interceptor return view on falseSpring MVC 3:拦截器返回错误视图
【发布时间】:2013-03-19 10:29:47
【问题描述】:

我正在使用拦截器来限制对应用中某些用户的访问。例如:

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

如果列表包含用户,则完成请求。否则,它什么也不做。

如果用户无权访问,我如何显示自定义页面?现在,如果它是假的,它只是显示一个不利于用户体验的空白页面。

【问题讨论】:

  • 您可以使用 RequestDispatcher 从请求中转发到某个 jsp。或者您可以发送重定向。

标签: java spring-mvc interceptor


【解决方案1】:

看起来您可以在不点击 servlet 的情况下进行响应重定向。以下作品:

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

【讨论】:

  • 谨慎命名。您传递给重定向的字符串不是视图名称,而是实际发出新请求。
  • 感谢您的提醒。我将不得不重定向到另一个 servlet 或静态视图。
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 2015-10-07
相关资源
最近更新 更多