在spring boot中, 表單的提交中, 表單的各項輸入可以直接對應後臺對象的各屬性, 而不用編寫額外賦值代碼, 其中有幾點需要注意
舉例說明, 例子中只列出了講解使用到的部分, 實際開發中不會這麼簡單.
後臺對象
class User{
private String username;
private String password;
//是否啓用
private boolean enable = true;
//角色集合
private List<Role> roles;
}
html表單
<form action="" method="post">
<input type="text" name="username">
<input type="text" name="password">
<input type="checkbox" name="enable">
<select name="roles[0].id" class="form-control">
<option value="1">系統管理員</option>
<option value="3">單位管理員</option>
<option value="2">客戶</option>
</select>
</form>
- 表單中input標籤的name屬性的值, 必須和對象的屬性名稱一致, 如表單中的name屬性爲’username’, 必須和User類中的username屬性名稱一致
- 表單中的checkbox控件, 當爲選中狀態時, 傳到後臺對象中的值爲true, 如果爲未選中狀態, 則該值不會傳到後臺, 也就是說, 當checkbox沒有選中時, 後臺對象的enable屬性值爲默認值, 這裏enable默認值爲true, 則checkbox未選中時, 後臺user的enable還是爲true, 解決方法是可以是enable默認值爲false.
- 當表單中的值對應對象的子對象屬性時, 可以使用子對象名稱.(點)子對象屬性的方式, 如roles[0].id
- 當表單中的值對用對象的數組或集合中的值時, 可以使用集合下標的方式賦值, 如roles[0].id, 數組和集合通用.