简单的来说转发就是浏览器不刷新,重定向会告诉浏览器刷新了.
复杂来说的转发就是服务区内容器存储的问题,二转发就不会带着原来的参数去新的地址了.
来看下springMVC转发和重定向的要点:
1,转发,简单介绍两种方式,还有很多方式,如response转发等
方式一:使用ModelAndView
Map<String,Object> map = new HashMap<String,Object>();
map.put("brand",brand);
return new ModelAndView("forward:/toList",map);
方式二:返回String
attr.addAttribute("param", value);
return "forward:/ toList ";
2,重定向,和转发一样,简单介绍两种方式,重点在于springMVC重定向是get提交的(后面讲)
方式一:使用ModelAndView
Map<String,Object> map = new HashMap<String,Object>();
map.put("brand",brand);
return new ModelAndView(newRedirectView("/toList"),map);
方式二:返回String
attr.addAttribute("param", value);
return "redirect:/ toList ";
springMVC下的重定向是默认get模式的,有的人说需要post提交设置成这样就行了new RedirectView("/toList",true,false,false)里面的第三个参数设置成false会成post跳转。
其实不是的,先来看第三个参数的注解
@param exposeModelAttributes whether or not model attributes should be
这里的意思是模型的参数应该有,并不是get或者post。
所以springMVC模式下的冲定型如果需要post带参数跳转还需要重新写一份工具类了!