java後臺方法(controller層)為什麼能獲取到jsp頁面傳來的form
阿新 • • 發佈:2018-12-10
我們先來看一個方法:這個是controller層攔截URL後執行的一個方法,這個方法接收了頁面傳來 的一個XXForm型別的form。
那我們不禁會問,為什麼在後端就這麼神奇的能接收到這個引數,今天我們就來詳細討論一下這個問題。
在這個XXForm物件裡面,有一個projectId屬性,在jsp頁面,我們先試試沒有這個name的input,如圖:
此時我們測試後臺,發現傳來的form的projectId值為空,那假如這個input的name屬性有值呢,既name=“projectId”,
再來看看後臺
這個時候發現projectId是有值的。
我們現在來總結一下:
1.後臺的form之所以有值,那肯定是頁面有form傳過去的;
2.後臺的form取到具體的值,是通過頁面標籤的name屬性匹配的,就像例子一樣,input的name=“projectId”,後臺的form(這個物件的XXform類肯定要有projectId這個屬性)的projectId才有值,且前後form的屬性字面值必須相同,區分大小寫;
3.如果頁面的form相比後臺的form多了一個屬性A,後臺的form是取不到這個值的;相反如果後臺的form有一個屬性B而頁面form沒有這個屬性,那麼後臺form的B屬性是為null的。
所以,我們建議頁面的form有哪些屬性,後臺的form在建立form類的時候,全都寫上去,就不會出現屬性不匹配的問題,