學習鏈接
勵志的狼—博客園。
mvc獲取頁面表單參數的幾種方式
裏面主要是前臺向後臺傳參。講得很詳盡
——————————————————————————2019/9/24補充---------------、
解析:
setAttribute()
getAttribute()
SessionScope
addAtrribute
form中的modelAttribute,以及path
setAttribute() getAttribute()是java代碼,寫在java源文件中,或者jsp的<%%>中。 SessionScope的屬於表達式,直接嵌在HTML代碼中取值。
例子:
通常說request.setAttribute與model.addAttribute是一樣的但是查閱到下面兩種情況。
【1】request.setAttribute與model.addAttribute的差別
【2】兩者數據插入量問題
這裏說下作用域問題:
model和session都是存放信息的地方,不同的地方就是他們的生命週期不同,model是request級別的 。
1.request的生命週期是request請求域,一個請求結束,則request結束,作用閾只在請求的頁面中~,然後在轉發進入的頁面就可以獲取到你的值,
2.session的生命週期是session會話域,打開一個瀏覽器請求一個網站的頁面後,關閉瀏覽器則session結束,作用閾是全局的~
如果在session中保存了數據,那麼在你這個無論你在哪個頁面,在什麼時候都可以獲取到這個值,全局的,只要你的這個程序是啓動的。
前端代碼
後端代碼
上圖兩種方法效果一樣。
但是採用setAttribute的方法就會報錯,是因爲我的jsp使用form modelattribute應該配合model(或者說request)使用,如果採用Session來進行傳參,前端獲取就應該用sessionScope.變量 來進行獲取 。
這是報的錯誤代碼
如果採用
2. setAttribute與sessionScope的使用
3. getAttribute的用法
取出之前set的內容或者說是add的內容(加入到Session中的內容)。
4. form表單中的modelAttribute
modelAttribute的值對應model中的值,
path直接跟數據的字段名(對象的屬性)。
看一下employee這個對象中的屬性
參考文獻
[1]https://blog.csdn.net/zuihoudebingwen/article/details/78037635
[2https://zhidao.baidu.com/question/304038748840781404.html]