一篇文章帶你了解Java SpringMVC返回null
1、回顧一下
大家有沒有注意到,目前講到的所有 controller 中的方法接收到請求之后,都是有返回值的,返回值主要有 2 種類型:
1、 輸出的是頁面:也就是視圖(會向客戶端輸出頁面),此時方法的返回值可以是 String
(視圖名稱)、ModelAndView
(頁面中有數(shù)據(jù)的情況)
2、輸出的是 json 格式的數(shù)據(jù):需要用到@ResponseBody
注解
這 2 種情況中,都是 springmvc 來處理返回值的,接受到返回值之后,會調(diào)用 response 來進行頁面跳轉或者調(diào)用輸出流將 json 格式的數(shù)據(jù)輸出。
2、思考一個問題
當方法的返回值為 void 或者方法中返回 null 的時候,springmvc 會怎么處理呢?
比如下面 2 個方法:
@GetMapping("/test1") public void test(){ } @GetMapping("/test1") public Object test(){ return null; }
當出現(xiàn)上面這 2 種情況的時候,springmvc 調(diào)用這些方法之后,請求就結束了,springmvc 會認為在控制器的方法中響應已經(jīng)被處理過了,不需要 springmvc 去處理了。
3、springmvc 的處理流程
4、使用場景
當響應結果比較復雜的時候,springmvc 無法處理這些響應結果的時候,我們可以在控制器的方法中使用 response 來主動控制輸出的結果。
比如下載文件、斷點下載文件等比較復雜的響應,此時我們可以在處理器的方法中使用 HttpServletResponse 來自己控制輸出的內(nèi)容,可以執(zhí)行更細粒度的操作。
5、總結
到目前我們主要掌握了 3 種類型的返回值,工作中基本上最常用的就是這 3 種方式,咱們要掌握好:
第 1 種:返回視圖,即頁面,此時返回值可以是 String(視圖名稱)、或者 ModelAndView
第 2 種:返回 json 格式數(shù)據(jù),需在方法上添加 @ResponseBody 注解
第 3 種:方法返回值為 void 或者 return null;此時需要我們在方法中自己通過 HttpServletResponse 對象來主動向客戶端輸出結果。
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!
相關文章
SpringBoot加載不出來application.yml文件的解決方法
這篇文章主要介紹了SpringBoot加載不出來application.yml文件的解決方法,文中通過示例代碼講解的非常詳細,對大家的學習或者工作有一定的幫助,需要的朋友跟著小編來一起來學習吧2023-12-12Java之next()、nextLine()區(qū)別及問題解決
這篇文章主要介紹了Java之next()、nextLine()區(qū)別及問題解決,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08