91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

@ModelAttribute在父類和子類中的執行順序是什么

發布時間:2021-06-17 14:44:03 來源:億速云 閱讀:356 作者:chen 欄目:開發技術

這篇文章主要講解了“@ModelAttribute在父類和子類中的執行順序是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“@ModelAttribute在父類和子類中的執行順序是什么”吧!

@ModelAttribute在父類、子類的執行順序

被 @ModelAttribute 注解的方法會在Controller每個方法執行之前都執行,因此對于一個Controller中包含多個URL的時候,要謹慎使用。

執行順序:

先執行子類 @ModelAttribute 注解的方法,再執行父類中 @ModelAttribute 注解的方法。

@ModelAttribute原理概述以及使用注意點

@ModelAttribute注解修飾的方法:

1.從數據庫中取出對象,把對象放到Map中,鍵為user

2.SpringMvc從Map中取出User對象,并且把請求參數賦值給User對象的對應屬性

3.SpringMvc把上述的對象傳入目標方法的參數

注意:在@ModelAttribute修飾的方法中,放入到Map中的鍵名要和目標方法入參類型的第一個字母小寫的字符串一致

源碼分析流程:

調用@ModelAttribute注解修飾的方法,實際上@ModelAttribute方法中Map中的數據放在了implicitModel中.

解析請求處理器的目標參數,實際上該目標參數來自于WebDataBinder對象的target屬性

1).創建WebDataBinder對象

確定objectName屬性:如果傳入的attrName屬性值為"",則objectName為類名第一個字母小寫

注意:attrName若目標方法的POJO屬性使用了@ModelAttribute來修飾,則attrName的值為@ModelAttribute的value屬性

確定target屬性

在implitModel中查找attrName對應的屬性值.若不存在,則驗證當前handler是否使用了@sessionAttribute進行修飾,則嘗試從session中獲取attrName所對應的屬性值,若session中沒有,則拋出了異常。

若Handler沒有使用@sessionAttribute進行修飾,或者@SessionAttrbutes中沒有value值指定的key和attrName相,則通過反射創建POJO對象.

2).SpringMvc把表單的請求參數賦給了WebDataBinder的target對應的屬性,

3).SpringMvc會把WebDataBinder的attrName和targe給到implicitMoel

4).把WebDataBinder的target作為參數傳遞給目標方法的入參

感謝各位的閱讀,以上就是“@ModelAttribute在父類和子類中的執行順序是什么”的內容了,經過本文的學習后,相信大家對@ModelAttribute在父類和子類中的執行順序是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贺州市| 浮梁县| 安达市| 金川县| 沁水县| 丰城市| 皋兰县| 平遥县| 安陆市| 阿拉善右旗| 团风县| 顺平县| 宾阳县| 阿荣旗| 丹凤县| 台安县| 苍南县| 临颍县| 贺州市| 久治县| 邢台县| 庆元县| 克山县| 定远县| 苏州市| 鸡西市| 鹿泉市| 峨山| 子长县| 延安市| 称多县| 安仁县| 淮安市| 承德市| 应城市| 安达市| 天峻县| 天台县| 西华县| 香河县| 石城县|