在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, 数组和集合通用.