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在跳到頁面后馬上移除對象。所以你刷新一下后這個值就會丟掉。
新聞熱點
疑難解答