SpringMVC中使用bean來接收form表單提交的引數時的注意點
阿新 • • 發佈:2019-01-26
這是前輩們對於SpringMVC接收表單資料記錄下來的總結經驗:
下面是我自己在使用時發現的,前輩們沒有記錄的細節和注意點:
使用bean來接收form表單提交的引數時,pojo中必須含有預設的(即空的)建構函式,同時,需要設定到bean中的變數必須有setter方法。
注:以下程式碼均為示例程式碼,非本人實際執行程式碼,請自行補充。
例如:我有一個bean類是User,具有變數username和password。同時,表單提交的內容為:
<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中才能成功接收到引數並生成對應的bean物件
@RequestMapping(value="/save-user-info") public String saveUser(SsbiUser user) { System.out.println(user.toString); return "user-info"; }
通過一些測試,我把這個過程理解為,前臺提交了一個包含User資料的form表單後,後臺接受到引數後,首先會生成一個不包含任何引數的User物件,然後通過setter方法往這個空的物件這設定對應的值,最終得到我們需要的User物件。
而不是我一開始以為的,後臺接受到引數以及直接呼叫對應的User(username, password)構造方法生成需要的物件。