慕課網《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 ... }