集合的数据绑定

慕课网《SpringMVC数据绑定入门》笔记数组

List

  将表单数据绑定到后台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

Set

  相对于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 的好。对象

Map

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 ...
}
相关文章
相关标签/搜索