最好用于在spring mvc中重定向url:
return new ModelAndView(new RedirectView("../abc/list.vm"));
或
return new ModelAndView("redirect:DummyRedirectPage.htm");
答案 0 :(得分:4)
ModelAndView
对象包含一个引用其视图对象的实例变量,该变量可以是:
具体View
实施,例如您使用时的情况:
new ModelAndView(new RedirectView("../abc/list.vm"))
一个String
对象,其中包含以 重定向为前缀的视图的符号名称: 或 转发: ,使用时就是这种情况:
new ModelAndView("redirect:DummyRedirectPage.htm")
现在,当调用Spring基本Web条目DispatcherServlet
来呈现View
时,它将尝试针对给定的ModelAndView
对象解析请求的视图,或者获取引用在其View
子实现中,它提供或解析View
并从ModelAndView
视图字符串表示中创建它:
protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response) throws Exception {
// ...
View view;
if (mv.isReference()) {
// Resolve the view and instantiate it...
}
else {
// No need to lookup: the ModelAndView object contains the actual View object.
view = mv.getView();
// ...
}
// ...
}
请注意,如果视图是org.springframework.web.servlet.ModelAndView#isReference
对象,则true
会返回String
。
鉴于以下细节,我假设第一个ModelAndView
涉及较少的计算,因此可能优先于后者。