如何在使用Spring MVC时使用send.redirect()

如何在使用Spring MVC时使用send.redirect(),spring,spring-mvc,redirect,Spring,Spring Mvc,Redirect,我试图从拦截器和处理程序映射程序重定向到一个动态页面。我已经定义了一个控制器,它通过模型处理和重定向(/hello.htm)(我的程序中只有这个控制器)。在这一点之前,它工作得很好。除此之外,我还注册了一个处理程序,一旦满足某个条件,它将重定向到某个页面 public class WorkingHoursInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRe

我试图从拦截器和处理程序映射程序重定向到一个动态页面。我已经定义了一个控制器,它通过模型处理和重定向(/hello.htm)(我的程序中只有这个控制器)。在这一点之前,它工作得很好。除此之外,我还注册了一个处理程序,一旦满足某个条件,它将重定向到某个页面

public class WorkingHoursInterceptor extends HandlerInterceptorAdapter  {
@Override
public boolean preHandle(HttpServletRequest request,
        HttpServletResponse response, Object handler) throws Exception {
    System.out.println("In Working Hours Interceptor-pre");
    Calendar c=Calendar.getInstance();
    if(c.get(Calendar.HOUR_OF_DAY)<10||c.get(Calendar.HOUR_OF_DAY)>20){
        response.sendRedirect("/WEB-INF/jsp/failure.jsp");
                        return false;
    }
    return true;
..............
..............
} 
(如果我更改拦截器条件,用于处理
hello.html
的控制器工作正常)


如果我只是在控制台中打印一条消息,而不是重定向,那么程序工作正常。但一旦它转向,就会显示错误。我是否需要指定一个单独的控制器来处理此请求?此重定向请求是否会转到dispatcher servlet?

您需要在视图名称中添加
重定向:
前缀,重定向代码如下所示:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
   public String redirect() {

      return "redirect:finalPage";
   }

您可以从这里获得详细说明:

Hi All,而不是重定向;若我只是在控制台中打印一条消息,那个么程序运行良好。但一旦转向,它就会显示错误。我是否需要指定单独的控制器来处理此请求?此重定向请求是否会转到dispatcher servlet?
@RequestMapping(value = "/redirect", method = RequestMethod.GET)
   public String redirect() {

      return "redirect:finalPage";
   }
@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView redirect() {

  return new ModelAndView("redirect:finalPage");
}