溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

淺談Springmvc中的頁面跳轉(zhuǎn)問題

發(fā)布時間:2020-10-09 10:14:14 來源:腳本之家 閱讀:186 作者:昨天的你,現(xiàn)在的未來 欄目:編程語言

SpringMvc跳轉(zhuǎn)問題

SpringMvc的Controller每次處理完數(shù)據(jù)后都會返回一個邏輯視圖(view)和模型(model)

所以我們會看到原生的Controller是返回一個ModelAndView(內(nèi)部包含了view和model)。

正常情況下(除非被@ModelAttribute注解了的方法),否則最終都會返回ModelAndView。

當然有時候一個功能處理方法不一定要返回一個邏輯視圖,也可以重定向到另一個功能方法

服務(wù)器內(nèi)部轉(zhuǎn)發(fā)到一個邏輯視圖或者另一個功能方法。

---

SpringMvc的強大之處在于它封裝了Servlet大量底層代碼,但是有沒有完全屏蔽用戶對ServletAPI

的使用。所以SpringMvc中頁面跳轉(zhuǎn)也是分為兩大類:

使用ServletAPI實現(xiàn)頁面跳轉(zhuǎn)

重定向方式:由于重定向的本質(zhì)是要求瀏覽器重新發(fā)送一個請求,SpringMvc里面的頁面一般是放到WEB-INF下,瀏覽器不可以直接訪問)

所以這里的重定向?qū)嵸|(zhì)是重定向到另一個功能方法。

服務(wù)器內(nèi)部請求轉(zhuǎn)發(fā):請求轉(zhuǎn)發(fā)為服務(wù)器內(nèi)部行為,所以可以直接跳轉(zhuǎn)訪問一個jsp頁面也可以跳轉(zhuǎn)到另一個功能處理方法。

```text

//使用原生的ServletApi進行頁面跳轉(zhuǎn)
@RequestMapping("/c")
public String test(HttpServletResponse response, HttpServletRequest request) throws ServletException, IOException {
System.out.println("testC");
//跳轉(zhuǎn)到服務(wù)器內(nèi)部的一個頁面
//request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request,response);
  //跳轉(zhuǎn)到服務(wù)器內(nèi)部的一個功能處理方法
  //request.getRequestDispatcher("/dispather/b").forward(request,response);
  //重定向一個功能方法
  response.sendRedirect(request.getContextPath()+"/dispather/b");
  return null;
 }

使用SpringMvc的API實現(xiàn)頁面跳轉(zhuǎn)

直接返回邏輯視圖名

text @RequestMapping("/b") public String testB(){ System.out.println("testB"); //直接返回一個視圖 return "index"; }

返回自定義的ModelAndView:自定義ModelAndView時,可以重定向或請求轉(zhuǎn)發(fā)

```text

//Controller中使用ModelAndView進行跳轉(zhuǎn)和重定向
@RequestMapping("/e")
public ModelAndView testE(){
System.out.println("testE");
//跳轉(zhuǎn)到服務(wù)器內(nèi)部的一個頁面
//return "index";
 //跳轉(zhuǎn)到服務(wù)器內(nèi)部的一個功能處理方法
 //return new ModelAndView("forward:/dispather/b");
 //重定向一個功能方法
 return new ModelAndView("redirect:/dispather/b");
}

總結(jié)

以上就是本文關(guān)于淺談Springmvc中的頁面跳轉(zhuǎn)問題的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

參考:

Java編程實現(xiàn)springMVC簡單登錄實例

SpringMVC攔截器實現(xiàn)單點登錄

springmvc Rest風格介紹及實現(xiàn)代碼示例

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI