1. 程式人生 > >java後臺方法(controller層)為什麼能獲取到jsp頁面傳來的form

java後臺方法(controller層)為什麼能獲取到jsp頁面傳來的form

我們先來看一個方法:這個是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類的時候,全都寫上去,就不會出現屬性不匹配的問題,