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( "====================");
}
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>
< 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 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;
}
}
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>
< 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 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;
}
}
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>
< 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 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;
}
}
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>
< 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 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;
}
}
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>
< 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 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;
}
}
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>
< 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>