小编B.K*_*B.K的帖子

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

我试图从Interceptor和Handler Mapping程序重定向到动态页面.我已经定义了一个控制器,它通过模型处理和重定向(/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;
..............
..............
} 
Run Code Online (Sandbox Code Playgroud)

但是,一旦涉及到response.sendRedirect它,即使提到的页面存在,它也显示未找到的资源.我试图重定向到"WEB-INF/jsp/hello.jsp"但仍然显示相同的错误.如果不满足拦截器中的条件,则程序正常.

下面显示了程序中唯一存在的控制器.

@Controller
public class MyController {
@RequestMapping("/hello.htm")
public ModelAndView sayGreeting(){
    String msg="Hi, Welcome to Spring MVC 3.2";
    return new ModelAndView("WEB-INF/jsp/hello.jsp","message",msg);

    }

}
Run Code Online (Sandbox Code Playgroud)

(hello.html如果改变拦截器条件,处理控制器工作正常)

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

redirect spring spring-mvc

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

redirect ×1

spring ×1

spring-mvc ×1