spring MVC 轉發與重定向(傳參)


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+"&param2="+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在跳到頁面后馬上移除對象。所以你刷新一下后這個值就會丟掉。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM