SpringMVC重定向的兩種方式
首先明白,重定向一定不會經過視圖解析器,因為請求轉發的頁面是在地址欄直接訪問的,是一個新的請求,如果經過視圖解析器,拼接后的結果就是錯誤的,所以重定向一定不經過視圖解析器。另外WEB-INF下的所有文件必須通過請求轉發才能訪問。
約定:在本項目存在/WEB_INF/pages/success.jsp文件,
SpringMVC的環境自行配置
方式一:SpringMVC提供的重定向
前端界面
<a href="${pageContext.request.ContextPath}/redirectMVC">SpringMVC方式重定向</a>
后台代碼
//請求轉發處理器 @RequestMapping("/redirectMVC") public String forwardView(){ //不能由於上面介紹的原因,所以此處的寫法是錯誤的 //return "redirect:/WEB_INF/pages/success.jsp"; //此處的寫法是正確的 return "redirect:forwardMVC"; } @RequestMapping("/forwardMVC") public String forwardMVC(){ return "success"; }
方式二:Servlet原生支持的重定向
前端界面
<a href="${pageContext.request.ContextPath}/redirectCommon">傳統方式重定向</a>
后台代碼
//請求轉發處理器 @RequestMapping("/redirectMVC") public void forwardView(HttpServletRequest,HttpServletResponse){ response.sendRedirect(request.getContextPath()+"/項目名/forwardView"); }
