SpringMVC数据绑定
2014-02-05 21:19
357 查看
1、基本数据类型
@RequestMapping
public void test1(String name, Integer age, Double income, Boolean isMarried, String[] interests)
{
System.out.println("简单数据类型绑定=========");
System.out.println("名字:" + name);
System.out.println("年龄:" + age);
System.out.println("收入:" + income);
System.out.println("已结婚:" + isMarried);
System.out.println("兴趣:");
for (String interest : interests)
{
System.out.println(interest);
}
System.out.println("====================");
}
<form action="test1.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="name" value="张三"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="age" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="income" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="isMarried" value="true" checked="checked"/>是
<input type="radio" name="isMarried" value="false"/>否</div>
<div class="clear"></div>
<div class="f_left">兴趣:</div>
<div class="f_left">
<input type="checkbox" name="interests" value="听歌" checked="checked"/>听歌
<input type="checkbox" name="interests" value="书法" checked="checked"/>书法
<input type="checkbox" name="interests" value="看电影" checked="checked"/>看电影
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
2、简单对象类型
与基本类型相拟,只不过绑定到对象上更加简洁.
@RequestMapping
public void test2(User user)
{
System.out.println("简单对象类型绑定=========");
System.out.println("名字:" + user.getName());
System.out.println("年龄:" + user.getAge());
System.out.println("收入:" + user.getIncome());
System.out.println("已结婚:" + user.getIsMarried());
System.out.println("========================");
}
public class User {
private String name;
private Integer age;
private Boolean isMarried;
private Double income;
private String[] interests;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Boolean getIsMarried() {
return isMarried;
}
public void setIsMarried(Boolean isMarried) {
this.isMarried = isMarried;
}
public Double getIncome() {
return income;
}
public void setIncome(Double income) {
this.income = income;
}
public String[] getInterests() {
return interests;
}
public void setInterests(String[] interests) {
this.interests = interests;
}
}
<form action="test2.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="name" value="lxf"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="age" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="income" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="isMarried" value="true" checked="checked"/>是
<input type="radio" name="isMarried" value="false"/>否</div>
<div class="clear"></div>
<div class="f_left">兴趣:</div>
<div class="f_left">
<input type="checkbox" name="interests" value="听歌" checked="checked"/>听歌
<input type="checkbox" name="interests" value="书法" checked="checked"/>书法
<input type="checkbox" name="interests" value="看电影" checked="checked"/>看电影
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
3、List类型绑定
关键在于,List需要绑定在对象,直接写在request-mapping函数的参数是不行的,更重要的一点是要创建对象(ArrayList).
@RequestMapping
public void test3(Club club)
{
System.out.println("list类型绑定=========");
System.out.println("会员:");
for (User user : club.getUsers())
{
System.out.println(user.getName());
}
System.out.println("========================");
}
public class Club {
private List<User> users = new ArrayList<User>();
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users)
{
this.users = users;
}
}
<form action="test3.do" method="post">
<div class="f_left">会员1号:</div>
<div class="f_left">
<input name="users[0].name" value="张三"/>
</div>
<div class="clear"></div>
<div class="f_left">会员2号:</div>
<div class="f_left">
<input name="users[1].name" value="李四"/>
</div>
<div class="clear"></div>
<div class="f_left">会员3号:</div>
<div class="f_left">
<input name="users[2].name" value="王五"/>
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
4、Set类型绑定
与List类型相似,经测试表明,绑定Set数据时,必须先在Set对象中Add相应的数量的模型对象.
@RequestMapping
public void test4(Club2 club)
{
System.out.println("set类型绑定=========");
System.out.println("会员:");
for (User user : club.getUsers())
{
System.out.println(user.getName());
}
System.out.println("========================");
}
public class Club2 {
private Set<User> users = new LinkedHashSet<User>();
public Club2() {
users.add(new User());
users.add(new User());
users.add(new User());
}
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users)
{
this.users = users;
}
}
<form action="test4.do" method="post">
<div class="f_left">会员1号:</div>
<div class="f_left">
<input name="users[0].name" value="张三"/>
</div>
<div class="clear"></div>
<div class="f_left">会员2号:</div>
<div class="f_left">
<input name="users[1].name" value="李四"/>
</div>
<div class="clear"></div>
<div class="f_left">会员3号:</div>
<div class="f_left">
<input name="users[2].name" value="王五"/>
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
5、Map类型绑定
最灵活的一种方式,可无限绑定未定义的参数,注意必须绑定在对象下
@RequestMapping
public void test5(UserForm userForm)
{
System.out.println("Map类型绑定=========");
System.out.println("名字:" + userForm.getUser().get("name"));
System.out.println("年龄:" + userForm.getUser().get("age"));
System.out.println("收入:" + userForm.getUser().get("income"));
System.out.println("已结婚:" + userForm.getUser().get("isMarried"));
System.out.println("========================");
}
public class UserForm {
private Map<String, String> userMap = new LinkedHashMap<String,
String>();
private User user = new User();
public Map<String, String> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, String> userMap)
{
this.userMap = userMap;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
<form action="test5.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="user['name']" value="张三"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="user['age']" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="user['income']" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="user['isMarried']" value="true" checked="checked"/>是
<input type="radio" name="user['isMarried']" value="false"/>否</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
6、复合类型绑定
@RequestMapping
public void test6(UserForm userForm)
{
System.out.println("复合类型绑定=========");
System.out.println("名字:" + userForm.getUser().getName());
System.out.println("年龄:" + userForm.getUser().getAge());
System.out.println("收入:" + userForm.getUser().getIncome());
System.out.println("已结婚:" + userForm.getUser().getIsMarried());
System.out.println("========================");
}
public class UserForm {
private Map<String, String> userMap = new LinkedHashMap<String,
String>();
private User user = new User();
public Map<String, String> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, String> userMap)
{
this.userMap = userMap;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
<form action="test6.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="user.name" value="张三"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="user.age" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="user.income" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="user.isMarried" value="true" checked="checked"/>是
<input type="radio" name="user.isMarried" value="false"/>否</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
@RequestMapping
public void test1(String name, Integer age, Double income, Boolean isMarried, String[] interests)
{
System.out.println("简单数据类型绑定=========");
System.out.println("名字:" + name);
System.out.println("年龄:" + age);
System.out.println("收入:" + income);
System.out.println("已结婚:" + isMarried);
System.out.println("兴趣:");
for (String interest : interests)
{
System.out.println(interest);
}
System.out.println("====================");
}
<form action="test1.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="name" value="张三"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="age" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="income" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="isMarried" value="true" checked="checked"/>是
<input type="radio" name="isMarried" value="false"/>否</div>
<div class="clear"></div>
<div class="f_left">兴趣:</div>
<div class="f_left">
<input type="checkbox" name="interests" value="听歌" checked="checked"/>听歌
<input type="checkbox" name="interests" value="书法" checked="checked"/>书法
<input type="checkbox" name="interests" value="看电影" checked="checked"/>看电影
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
2、简单对象类型
与基本类型相拟,只不过绑定到对象上更加简洁.
@RequestMapping
public void test2(User user)
{
System.out.println("简单对象类型绑定=========");
System.out.println("名字:" + user.getName());
System.out.println("年龄:" + user.getAge());
System.out.println("收入:" + user.getIncome());
System.out.println("已结婚:" + user.getIsMarried());
System.out.println("========================");
}
public class User {
private String name;
private Integer age;
private Boolean isMarried;
private Double income;
private String[] interests;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Boolean getIsMarried() {
return isMarried;
}
public void setIsMarried(Boolean isMarried) {
this.isMarried = isMarried;
}
public Double getIncome() {
return income;
}
public void setIncome(Double income) {
this.income = income;
}
public String[] getInterests() {
return interests;
}
public void setInterests(String[] interests) {
this.interests = interests;
}
}
<form action="test2.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="name" value="lxf"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="age" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="income" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="isMarried" value="true" checked="checked"/>是
<input type="radio" name="isMarried" value="false"/>否</div>
<div class="clear"></div>
<div class="f_left">兴趣:</div>
<div class="f_left">
<input type="checkbox" name="interests" value="听歌" checked="checked"/>听歌
<input type="checkbox" name="interests" value="书法" checked="checked"/>书法
<input type="checkbox" name="interests" value="看电影" checked="checked"/>看电影
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
3、List类型绑定
关键在于,List需要绑定在对象,直接写在request-mapping函数的参数是不行的,更重要的一点是要创建对象(ArrayList).
@RequestMapping
public void test3(Club club)
{
System.out.println("list类型绑定=========");
System.out.println("会员:");
for (User user : club.getUsers())
{
System.out.println(user.getName());
}
System.out.println("========================");
}
public class Club {
private List<User> users = new ArrayList<User>();
public List<User> getUsers() {
return users;
}
public void setUsers(List<User> users)
{
this.users = users;
}
}
<form action="test3.do" method="post">
<div class="f_left">会员1号:</div>
<div class="f_left">
<input name="users[0].name" value="张三"/>
</div>
<div class="clear"></div>
<div class="f_left">会员2号:</div>
<div class="f_left">
<input name="users[1].name" value="李四"/>
</div>
<div class="clear"></div>
<div class="f_left">会员3号:</div>
<div class="f_left">
<input name="users[2].name" value="王五"/>
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
4、Set类型绑定
与List类型相似,经测试表明,绑定Set数据时,必须先在Set对象中Add相应的数量的模型对象.
@RequestMapping
public void test4(Club2 club)
{
System.out.println("set类型绑定=========");
System.out.println("会员:");
for (User user : club.getUsers())
{
System.out.println(user.getName());
}
System.out.println("========================");
}
public class Club2 {
private Set<User> users = new LinkedHashSet<User>();
public Club2() {
users.add(new User());
users.add(new User());
users.add(new User());
}
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users)
{
this.users = users;
}
}
<form action="test4.do" method="post">
<div class="f_left">会员1号:</div>
<div class="f_left">
<input name="users[0].name" value="张三"/>
</div>
<div class="clear"></div>
<div class="f_left">会员2号:</div>
<div class="f_left">
<input name="users[1].name" value="李四"/>
</div>
<div class="clear"></div>
<div class="f_left">会员3号:</div>
<div class="f_left">
<input name="users[2].name" value="王五"/>
</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
5、Map类型绑定
最灵活的一种方式,可无限绑定未定义的参数,注意必须绑定在对象下
@RequestMapping
public void test5(UserForm userForm)
{
System.out.println("Map类型绑定=========");
System.out.println("名字:" + userForm.getUser().get("name"));
System.out.println("年龄:" + userForm.getUser().get("age"));
System.out.println("收入:" + userForm.getUser().get("income"));
System.out.println("已结婚:" + userForm.getUser().get("isMarried"));
System.out.println("========================");
}
public class UserForm {
private Map<String, String> userMap = new LinkedHashMap<String,
String>();
private User user = new User();
public Map<String, String> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, String> userMap)
{
this.userMap = userMap;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
<form action="test5.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="user['name']" value="张三"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="user['age']" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="user['income']" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="user['isMarried']" value="true" checked="checked"/>是
<input type="radio" name="user['isMarried']" value="false"/>否</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
6、复合类型绑定
@RequestMapping
public void test6(UserForm userForm)
{
System.out.println("复合类型绑定=========");
System.out.println("名字:" + userForm.getUser().getName());
System.out.println("年龄:" + userForm.getUser().getAge());
System.out.println("收入:" + userForm.getUser().getIncome());
System.out.println("已结婚:" + userForm.getUser().getIsMarried());
System.out.println("========================");
}
public class UserForm {
private Map<String, String> userMap = new LinkedHashMap<String,
String>();
private User user = new User();
public Map<String, String> getUserMap() {
return userMap;
}
public void setUserMap(Map<String, String> userMap)
{
this.userMap = userMap;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
<form action="test6.do" method="post">
<div class="f_left">姓名:</div>
<div class="f_left"><input name="user.name" value="张三"/></div>
<div class="clear"></div>
<div class="f_left">年龄:</div>
<div class="f_left"><input name="user.age" value="20"/></div>
<div class="clear"></div>
<div class="f_left">收入:</div>
<div class="f_left"><input name="user.income" value="100000"/></div>
<div class="clear"></div>
<div class="f_left">结婚:</div>
<div class="f_left">
<input type="radio" name="user.isMarried" value="true" checked="checked"/>是
<input type="radio" name="user.isMarried" value="false"/>否</div>
<div class="clear"></div>
<div><input type="submit" value="提交表单"/></div>
</form>
相关文章推荐
- SpringMVC数据绑定
- SpringMVC中利用@InitBinder来对页面数据进行解析绑定
- SpringMVC学习笔记四:数据绑定
- SpringMVC强大的数据绑定—注解式控制器详解
- SpringMVC 数据绑定
- SpringMVC中利用@InitBinder来对页面数据进行解析绑定的方法
- SpringMVC自定义日期类型的数据绑定
- SpringMVC自定义日期类型的数据绑定
- SpringMVC数据处理和数据绑定
- SpringMvc 数据绑定400错误
- SpringMVC—数据绑定与属性编辑
- springmvc数据绑定
- springmvc自定义数据绑定支持入参和出参snake和camel相互转化
- SpringMVC实现数据绑定及表单标签
- SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解
- SpringMVC-数据绑定流程分析
- SpringMVC强大的数据绑定(1)——第六章 注解式控制器详解——跟着开涛学SpringMVC
- springMVC对简单对象、Set、List、Map的数据绑定和常见问题.
- springMVC4(8)模型数据绑定全面分析
- springMVC与MyBatis中绑定枚举类型数据的转换