1. 程式人生 > >SpringMVC中使用bean來接收form表單提交的引數時的注意點

SpringMVC中使用bean來接收form表單提交的引數時的注意點

這是前輩們對於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)構造方法生成需要的物件。