springMVC重定向時引數傳遞及中文引數亂碼問題
springMVC重定向時,若需要帶引數,如果直接用return "redirect:/items?g="+group的話,一者跳轉時引數可見不安全,二者,中文引數可能會亂碼,此時可在當前方法入參中加入RedirectAttributes attr,然後在方法體中用attr.addFlashAttribute("attrGroup","attrGroup");這樣,當前方法重定向時,就會自動在url後面拼接上該"attrGroup"引數。在跳轉的目標方法的入參中,可以使用@ModelAttribute(value="attrGroup")String attrGroup獲取該引數,以便後續使用。
以下為源連結:
http://www.bkjia.com/Javabc/863245.html
spring MVC 轉發與重定向(傳參),springmvc
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在跳到頁面後馬上移除物件。所以你重新整理一下後這個值就會丟掉。
spring mvc註解裡controller類中方法可以不可以實現重定向
完全可以的!
@RequestMapping(value="/loginController")
public String login(Model model){
System.out.println("鳳姐進來了,趕緊跑吧!!");
return "redirect:/list";
}
Spring mvc重定向
你可以試著用ModelAndView這個物件定向頁面,一般springmvc我都用這個