在 spring mvc 中,當我們回傳 ModelAndView / Model 物件時,這是否會被序列化以在 HTTP 上發送?就像在 REST API 中發生的那樣,@ResponseBody 注釋的方法回傳值被序列化。如果不是,那么在 Spring MVC 中如何通過 HTTP 傳輸模型物件,因為我已經讀過如果沒有序列化就無法通過 HTTP 傳輸物件?
uj5u.com熱心網友回復:
這取決于。這取決于使用的視圖技術。但對于大多數人來說,它們將作為請求屬性公開,這是在View. 大多數實作AbstractView都使用此代碼。View
對于 Freemarker 之類的東西,模型既作為請求屬性公開,也添加到 Freemarker 內部模型物件。這樣 Freemarker 可以呈現頁面,您還可以使用模板中的標簽來檢索請求屬性。
如果某些東西被序列化,則取決于使用的實際視圖技術。對于生成 HTML、PDF、Excel 等的東西,沒有任何東西會被序列化。所有渲染和處理都在服務器上完成,最終結果(完整視圖)正在發送到客戶端。
MappingJackson2JsonView但是,對于像(還有其他)這樣的視圖技術,它們實際上將使用 Jackson 序列化模型。但最終,這將是通過 HTTP 發送的 JSON。
因此,通過 HTTP 發送的至少不是實際模型,而是取決于使用的視圖技術。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/425718.html
