我們都知道通過servlet跳轉到具體的視圖有兩種方式,一種方式是重定向,一種方式請求轉發。那麼在SpringMVC中視圖解析後跳轉是哪種方式實現的呢?很明顯在我們發起請求時地址欄內的地址是沒有發生變化的,所以SpringMVC預設是採用請求轉發的方式進行跳轉,那麼我們是否可以通過重定向的方式到自己 ...
我們都知道通過servlet跳轉到具體的視圖有兩種方式,一種方式是重定向,一種方式請求轉發。那麼在SpringMVC中視圖解析後跳轉是哪種方式實現的呢?很明顯在我們發起請求時地址欄內的地址是沒有發生變化的,所以SpringMVC預設是採用請求轉發的方式進行跳轉,那麼我們是否可以通過重定向的方式到自己想去的頁面呢?答案是可以的。
一、重定向
@RequestMapping("/red") public String test1() { return "redirect:/index.jsp"; }
重定向只需要在return中加一個“redirect:”,需要註意必須是完全路徑,當有重定向標記後,不會在視圖解析器加上首碼尾碼。
二、請求轉發
SpringMVC預設就是請求轉發,但也可以顯式地寫出來:
@RequestMapping("/for") public String test2(Model model) { model.addAttribute("message", "這是請求轉發"); return "forward:/WEB-INF/jsp/main.jsp"; }
顯式地表示出來需要加一個“forward”,此時也必須是完全的路徑。
(本文僅作個人學習記錄用,如有紕漏敬請指正)