spring mvc controller返回值的類型

①返回ModeAndView 

※ModeAndView請求轉發

說明:返回的modelAndView會返回到前端控制器進行處理,實際上進行了請求轉發到返回的試圖的面,ModeAndView裏面的模型數據也被寫進了request域中一同轉發到了試圖的這個頁面,所以在試圖的頁面中可以request.getAttribute()或者el表達式,獲取到被寫進ModeAndView的模型數據。ModeAndView這個類有很多的構造方法用於初始化模型和試圖。返回的試圖是邏輯試圖,要通過試圖解析器加上前後綴形成真正的試圖的url。


※ModeAndView重定向


說明:用ModeAndView進行重定向,需要指定的視圖的url前面加上redirect:,如果需要傳參的話,可以在url後面進行參數的拼接,通過request.getParameter()進行參數的獲取。

②返回String

※請求轉發


說明:加上forward的話,不會加上前後綴,所以必須把轉發的url寫全,加上forward可以重定向到其他方法中進行處理。不加forward,只需要寫邏輯視圖名,視圖解析器會加上前後綴,一般重定向到前端jsp頁面。如果需要傳值的話,可以直接在方法裏面進行參數綁定model對象,往model裏面添加數據,實際上是寫到了request域中,當然也可以綁定request對象,直接往request裏面寫數據。通過el表達式,或者request.getAttribute()獲取。

※重定向

說明:給返回的url前面加上redirect進行重定向,可以通過url拼接傳值。


③返回void


說明:返回值是void的時候,我們可以通過response輸出流把數據寫出去到請求頁面,也可以用request和response進行請求轉發和重定向。


總結:   客戶端和服務器的交互,無非就是客戶端發起請求,服務器接受請求,接下來三種情況:直接處理完後返回結果,在服務器內部進行請求轉發然後返回處理結果,重定向返回。萬變不離其宗,頁面的跳轉方式有很多種,無非就是對request,getRequestDispatcher("url").forward(requst.response)請求轉發和response.sendRedirect("url");重定向的封裝。




做爲一個剛爲行的菜鳥中的菜鳥,不會的太多太多,哈哈,但是千里之行始於足下,平生第一次寫博客,希望可以堅持,加油加油加油!!!

發佈了28 篇原創文章 · 獲贊 3 · 訪問量 3516
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章