Spring   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在使用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;="" ..............="" ..............="" }="">

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

大佬总结

以上是大佬教程为你收集整理的如何在使用Spring MVC时使用send.redirect()全部内容,希望文章能够帮你解决如何在使用Spring MVC时使用send.redirect()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。