加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 01:44:36 所属栏目:大数据 来源:网络整理
导读:我试图从Interceptor和Handler Mapping程序重定向到动态页面.我已经定义了一个控制器,它通过模型处理和重定向(/hello.htm)(我的程序中只有这个控制器).在此之前,它工作正常.除此之外,我注册了一个处理程序,一旦满足某些条件,它将重定向到页面. public class

我试图从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;
..............
..............
} 

但是一旦涉及到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);

    }

}

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

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

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

@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");
}

您可以从这里获得详细说明:
enter link description here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读