集合的數據綁定

慕課網《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 ...
}
相關文章
相關標籤/搜索