return "forward:index.jsp"; //轉發
return "forward:user.do?method=reg5"; //轉發
return new ModelAndView("/toList");//轉發
return "redirect:user.do?method=reg5"; //重定向
return "redirect:http://www.baidu.com"; //重定向
return new ModelAndView("redirect:/toList"); //重定向
重定向傳參
方式一:自己手動拼接url
new ModelAndView("redirect:/toList?param1="+value1+"¶m2="+value2);
這樣有個弊端,就是傳中文可能會有亂碼問題。
方式二:用RedirectAttributes,這個是發現的一個比較好用的一個類
這里用它的addAttribute方法,這個實際上重定向過去以后你看url,是它自動給你拼了你的url。
使用方法:
attr.addAttribute("param", value);
return "redirect:/namespace/toController";
方式三:帶參數不拼接url頁面也能拿到值(重點是這個)
一般我估計重定向到都想用這種方式:
@RequestMapping("/save")
public String save(@ModelAttribute("form") Bean form,
RedirectAttributes attr) throws Exception {
String code = service.save(form);
attr.addFlashAttribute("name", form.getName());
attr.addFlashAttribute("success", "添加成功!");
return "redirect:/index";
}
@RequestMapping("/index")
public String save(@ModelAttribute("form") Bean form,
RedirectAttributes attr) throws Exception {
return "redirect:/main/list";
}
頁面取值直接用el表達式就能獲得到,這里的原理是放到session中,session在跳到頁面后馬上移除對象。所以你刷新一下后這個值就會丟掉。
