慕课网《SpringMVC数据绑定入门》笔记数组
将表单数据绑定到后台List对象,只能绑定到类型是List的属性上面url
url:...?users[0].name=Tom&users[20].name=Jerry //这种方法是错误的 [@Controller](https://my.oschina.net/u/1774615) public String list(List<User> users){ return ... }
须要定义一个对象来接.net
class UsersListForm{ private List<User> users; } [@Controller](https://my.oschina.net/u/1774615) public String list(UsersListForm userListForm){ //表单数据会绑定到userListForm的users属性上 return ... }
须要注意的是,users接收到的数组大小,例如上面虽然只有两个name,可是后台的users.size()倒是20.code
相对于List,Set须要先初始化,在实际应用中,Set大部分是用于对象的重复判断和排除重复。orm
class UserSetForm{ private Set<User> users; //初始化 static{ users.add(user1); users.add(user2); ... } } [@Controller](https://my.oschina.net/u/1774615) public String set(UserSetForm userSetForm){ //表单数据会绑定到userSetForm的users属性上 return ... }
能够重写hashCode()和equals()方法,达到排重的目的。但SpringMVC对Set支持不友好,必须先初始化users的size(),若是不等于表单提交的size()就会报异常,所以对于集合,仍是用List 的好。对象
url:...?users["key"].name=Tom&... class UserMapForm{ private Map<String, User> users; } [@Controller](https://my.oschina.net/u/1774615) public String set(UserMapForm, userMapForm){ //表单数据会绑定到userMapForm的users属性上 return ... }