1. 程式人生 > >spring mvc controller返回值的型別

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");重定向的封裝。

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