gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:19:25 24 4
gpt4 key购买 nike

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

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 。
@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 的 Controller 工作正常)

如果我只是在控制台中打印一条消息,而不是重定向,则程序运行良好。但是一旦涉及到重定向,它就会显示错误。我需要指定一个单独的 Controller 来处理这个请求吗?这个重定向请求会发送到 dispatcher-servlet 吗?

最佳答案

您需要添加 redirect: View 名称中的前缀,重定向的代码将如下所示:

@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 - 如何在使用 Spring MVC 时使用 send.redirect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com