SpringMVC中使用bean來接收form表單提交的參數(shù)時的注意點(diǎn)
這是前輩們對于SpringMVC接收表單數(shù)據(jù)記錄下來的總結(jié)經(jīng)驗(yàn):
SpringMVC接收頁面表單參數(shù)
springmvc請求參數(shù)獲取的幾種方法
下面是我自己在使用時發(fā)現(xiàn)的,前輩們沒有記錄的細(xì)節(jié)和注意點(diǎn):
使用bean來接收form表單提交的參數(shù)時,pojo中必須含有默認(rèn)的(即空的)構(gòu)造函數(shù),同時,需要設(shè)置到bean中的變量必須有setter方法。
注:以下代碼均為示例代碼,非本人實(shí)際運(yùn)行代碼,請自行補(bǔ)充。
例如:我有一個bean類是User,具有變量username和password。同時,表單提交的內(nèi)容為:
<form action="save-user-info" method="post"> <span>帳號:</span><input type="text" name="username"><br> <span>密碼:</span><input type="text" name="password"><br> <input type="submit" value="保存"> </form>
那么,在User.java文件中必須具有
public User() {}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
此時,我在Controller中才能成功接收到參數(shù)并生成對應(yīng)的bean對象
@RequestMapping(value="/save-user-info")
public String saveUser(SsbiUser user) {
System.out.println(user.toString());
return "user-info";
}
通過一些測試,我把這個過程理解為,前臺提交了一個包含User數(shù)據(jù)的form表單后,后臺接受到參數(shù)后,首先會生成一個不包含任何參數(shù)的User對象,然后通過setter方法往這個空的對象這設(shè)置對應(yīng)的值,最終得到我們需要的User對象。
而不是我一開始以為的,后臺接受到參數(shù)以及直接調(diào)用對應(yīng)的User(username, password)構(gòu)造方法生成需要的對象。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
Windows下使用Graalvm將Springboot應(yīng)用編譯成exe大大提高啟動和運(yùn)行效率(推薦)
這篇文章主要介紹了Windows下使用Graalvm將Springboot應(yīng)用編譯成exe大大提高啟動和運(yùn)行效率,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-02-02
Java創(chuàng)建,編輯與刪除Excel迷你圖表的實(shí)現(xiàn)方法
RxJava中map和flatMap的用法區(qū)別源碼解析
Mybatis Criteria使用and和or進(jìn)行聯(lián)合條件查詢的操作方法
MyBatis實(shí)現(xiàn)表連接查詢寫法(三種對應(yīng)關(guān)系)的方法總結(jié)

