java – 差异返回普通模式视图并返回重定向模式视图

我刚刚学习了Spring MVC webflow.我对此很困惑:

return new ModelAndView("test");
return new ModelAndView("redirect:test");

重定向就像response.sendRedirect()一样吗?
我只是检查Spring引用,实际上,返回的新RedirectView()与response.sendRedirect()的作用相同.那么这三者有什么区别?

最佳答案
如果你想比较ModelAndView(“test”)和ModelAndView(“redirect:test”)
到servlet框架.第一个类似于RequestDispatcher
而后者将类似于request.sendRedirect()
如果你想知道requestdispatcher和sendredirect之间的区别,
这是that的答案

即使“redirect:test”的最终结果是调用HttpServletResponse.sendRedirect(),
RedirectView对象为您提供了便利和更多功能.
IMO,直接在框架中使用servlet API可能不是一个好主意
你想破解一些东西或解决一些问题.

The RedirectView issues an HttpServletResponse.sendRedirect() call that returns to
the client browser as an HTTP redirect. By default all model attributes are considered
to be exposed as URI template variables in the redirect URL. Of the remaining attributes
those that are primitive types or collections/arrays of primitive types are automatically
appended as query parameters.
07001

无论如何,在Spring MVC中,通常有不止一种方法可以做同样的事情.
这只是编码风格的问题.
例如,

public String doSomething(Model model){
    return "test";
}
public ModelAndView i_am_similar_to_doSomething(){
    return new ModelAndView("test");
}

//You can guess that you can do the same thing with redirect.

还有一些方法可以做这样的事情,但我的建议是
尝试坚持整个应用程序的相同风格.

转载注明原文:java – 差异返回普通模式视图并返回重定向模式视图 - 代码日志