您的位置:首页 > 编程语言 > Java开发

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: