簡體   English   中英

為什么需要在控制器操作中添加@ResponseBody?

[英]Why do I need to add @ResponseBody to my controller action?

根據Spring文檔 ,此批注指示方法返回值應綁定到Web響應主體。 我了解這一點,並且我一直在將其用於ajax調用。 但是,我最近遇到了不使用注釋的代碼。

所以我想我的問題真的是為什么它在沒有注釋的情況下仍然有效?

如果沒有注釋,則將進行不同的處理。 根據返回類型( 您可以在本文檔中找到默認值 ),將生成不同的響應。

例如,如果您的返回類型為String ,那么默認情況下,返回值將解析為一個View名稱,一個ViewResolver將嘗試解析並創建一個View對象,然后RequestDispatcher會將其轉發/包含/重定向(例如jsp ),以便Servlet容器可以處理生成響應。

處理返回類型的實際接口是HandlerMethodReturnValueHandler ,每種類型都有很多實現。 有關更多信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM