我试图从Interceptor和Handler MapPing程序重定向到动态页面.我已经定义了一个控制器,它通过模型处理和重定向(/hello.htm)(我的程序中只有这个控制器).在此之前,它工作正常.除此之外,我注册了一个处理程序,一旦满足某些条件,它将重定向到页面.
public class WorkingHoursInterceptor extends handlerinterceptorAdapter {@OverrIDepublic 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”,但仍然显示相同的错误.如果不满足拦截器中的条件,则程序正常.
下面显示了程序中唯一存在的控制器.
@Controllerpublic 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 总结
以上是内存溢出为你收集整理的如何在使用Spring MVC时使用send.redirect()全部内容,希望文章能够帮你解决如何在使用Spring MVC时使用send.redirect()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)