“返回新的ModelAndView(”redirect:surveys.html“)之间有什么区别;”并“返回新的ModelAndView(”surveys.html“);”

时间:2014-02-28 09:56:46

标签: spring model-view-controller modelandview

问题出在标题中。我有一个Spring MVC Web应用程序,我必须修改很多东西,我是这样的人,在做任何事情之前我都试图了解它是如何制作的。

有什么区别:

return new ModelAndView("redirect:surveys.hmtl");

return new ModelAndView("surveys.html");

感谢。

3 个答案:

答案 0 :(得分:12)

第一个重定向:

                  POST or GET
browser -------------------------------------> spring controller

         redirect to surveys.html (status = 302)
        <------------------------------------

                  GET
        -------------------------------------> surveys.html

                  final page
        <-------------------------------------

第二个前锋:

                    POST or GET
browser -------------------------------------> spring controller
                                                     |
                                                     |
                    final page                       V
        <------------------------------------- surveys.html

答案 1 :(得分:1)

重定向 - 将http 302重定向发送到客户端。然后客户端将使用给定的URL向服务器发送新请求。

return new ModelAndView("surveys.html");指示spring将此视图返回给客户端

答案 2 :(得分:0)

从程序员的角度来看,就是那个

return new ModelAndView("redirect:surveys.hmtl");  当您使用重定向时,您将控制器重定向到适用于重定向网址的另一个控制器。简单来说,您可以拥有处理该路径的控制器。那个控制器将被解雇。并且可以重定向到另一个页面。然后在HTTP响应中,您可以看到重定向状态3xx而不是正常情况下的200。

return new ModelAndView("surveys.html");

当您不使用重定向时,您只需调用View部分并显示您的html。 http响应200 / OK状态。