一篇文章帶你了解Java SpringMVC返回null
1、回顧一下
大家有沒有注意到,目前講到的所有 controller 中的方法接收到請(qǐng)求之后,都是有返回值的,返回值主要有 2 種類型:
1、 輸出的是頁(yè)面:也就是視圖(會(huì)向客戶端輸出頁(yè)面),此時(shí)方法的返回值可以是 String(視圖名稱)、ModelAndView(頁(yè)面中有數(shù)據(jù)的情況)
2、輸出的是 json 格式的數(shù)據(jù):需要用到@ResponseBody 注解
這 2 種情況中,都是 springmvc 來(lái)處理返回值的,接受到返回值之后,會(huì)調(diào)用 response 來(lái)進(jìn)行頁(yè)面跳轉(zhuǎn)或者調(diào)用輸出流將 json 格式的數(shù)據(jù)輸出。
2、思考一個(gè)問題
當(dāng)方法的返回值為 void 或者方法中返回 null 的時(shí)候,springmvc 會(huì)怎么處理呢?
比如下面 2 個(gè)方法:
@GetMapping("/test1")
public void test(){
}
@GetMapping("/test1")
public Object test(){
return null;
}
當(dāng)出現(xiàn)上面這 2 種情況的時(shí)候,springmvc 調(diào)用這些方法之后,請(qǐng)求就結(jié)束了,springmvc 會(huì)認(rèn)為在控制器的方法中響應(yīng)已經(jīng)被處理過(guò)了,不需要 springmvc 去處理了。
3、springmvc 的處理流程

4、使用場(chǎng)景
當(dāng)響應(yīng)結(jié)果比較復(fù)雜的時(shí)候,springmvc 無(wú)法處理這些響應(yīng)結(jié)果的時(shí)候,我們可以在控制器的方法中使用 response 來(lái)主動(dòng)控制輸出的結(jié)果。
比如下載文件、斷點(diǎn)下載文件等比較復(fù)雜的響應(yīng),此時(shí)我們可以在處理器的方法中使用 HttpServletResponse 來(lái)自己控制輸出的內(nèi)容,可以執(zhí)行更細(xì)粒度的操作。
5、總結(jié)
到目前我們主要掌握了 3 種類型的返回值,工作中基本上最常用的就是這 3 種方式,咱們要掌握好:
第 1 種:返回視圖,即頁(yè)面,此時(shí)返回值可以是 String(視圖名稱)、或者 ModelAndView
第 2 種:返回 json 格式數(shù)據(jù),需在方法上添加 @ResponseBody 注解
第 3 種:方法返回值為 void 或者 return null;此時(shí)需要我們?cè)诜椒ㄖ凶约和ㄟ^(guò) HttpServletResponse 對(duì)象來(lái)主動(dòng)向客戶端輸出結(jié)果。
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
聊聊SpringCloud和SpringCloudAlibaba的區(qū)別
這篇文章主要介紹了SpringCloud和SpringCloudAlibaba的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Hibernate的Annotation版Hello world實(shí)例
這篇文章主要介紹了Hibernate的Annotation版Hello world實(shí)現(xiàn)方法,詳細(xì)分析了Annotation的具體使用步驟與Hello world實(shí)現(xiàn)方法,需要的朋友可以參考下2016-03-03
基于Idea+Jconsole實(shí)現(xiàn)線程監(jiān)控步驟
這篇文章主要介紹了基于Idea+Jconsole實(shí)現(xiàn)線程監(jiān)控功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
淺談Spring AOP中args()和argNames的含義
這篇文章主要介紹了Spring AOP中args()和argNames的含義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
解決@PathVariable對(duì)于特殊字符截?cái)嗟膯栴}
這篇文章主要介紹了解決@PathVariable對(duì)于特殊字符截?cái)嗟膯栴},具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02

