Java 有没有办法检查HttpResponse是否是Spring拦截器中的重定向?
我想编写一个Spring MVC HandlerInterceptorAdaptor,它根据HttpResponse是否是重定向在postHandle()方法中执行不同的操作 这可能吗?如果可能,如何实现Java 有没有办法检查HttpResponse是否是Spring拦截器中的重定向?,java,spring-mvc,interceptor,Java,Spring Mvc,Interceptor,我想编写一个Spring MVC HandlerInterceptorAdaptor,它根据HttpResponse是否是重定向在postHandle()方法中执行不同的操作 这可能吗?如果可能,如何实现 public class MenuInterceptor extends HandlerInterceptorAdapter { public final void postHandle(HttpServletRequest request, Ht
public class MenuInterceptor extends HandlerInterceptorAdapter {
public final void postHandle(HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws SystemException {
if (redirect) {
// do somethnig
} else {
// do something else
}
}
编辑:
有没有比这更好的方法:
if (modelAndView.getView() instanceof RedirectView || modelAndView.getViewName().startsWith("redirect:")) {
// Do something
} else {
// Do something else
}
在Spring MVC中,控制器通常通过返回
视图
来发送重定向,该视图是重定向视图
或以重定向:
前缀开头的字符串viewName。您可以很容易地检查其中任何一个。您到底指的是什么类型的“拦截器”和/或什么类型的“HttpResponse”?如果您的HttpResponse有一个“状态代码”或“响应代码”,您只需要检查它是否有重定向代码。通常,301用于重定向。我想我需要澄清我的问题。正如问题主体中所述,Spring拦截器。我将使用一些示例代码进行编辑。是的,但仅通过检查视图类型和viewName.StartWith。我希望有更好的办法。