springmvc数据绑定

来源:互联网 发布:kingcms php 编辑:程序博客网 时间:2024/05/01 02:01

刚开始接触springmvc时,对于在action接收数据这一块不是很清楚,浪费了很多时间。先来个最简单的。

假设用form提交

<form action="/web/user/user" method="post">  

 <input name="username" type="text"/>

 <input name="address" type="text"/>

<input type="submit" value="提交表单"/>

</form>  


Controller代码如下

@RequestMapping(value="user")  

public void test(String username,String address) 

 {  

    System.out.prinfln("基础的数据类型绑定"); 

    System.out.prinfln("名字:"+username);

   System.out.prinfln("地址:"+address); 

 

上面那种数据绑定方式是最基本的,不过工作中用到比较多的还是绑定到对象上面去,看起来会更加整洁

先定义一个User类

public class User {


private String username;

private String address;


public String getUsername() {
return username;
}


public void setUsername(String username) {
this.username = username;
}


public String getAddress() {
return address;
}


public void setAddress(String address) {
this.address = address;
}

}

Controller代码如下

@RequestMapping(value="user")  

public void test(User user) 

 {  

    System.out.prinfln("基础的数据类型绑定"); 

    System.out.prinfln("名字:"+user.getUsername());

    System.out.prinfln("地址:"+user.getAddress()); 

 


在工作中遇到一个问题,我是否可以一次绑定多个对象的数据或者是根据需要去绑定不同对象的数据呢?通过查找资料,发现是可以进行复合类型绑定的。

假设用form提交

<form action="" method="post">  

 <input name="student.name" type="text"/>

 <input name="student.age" type="text"/>

 <input name="teacher.name" type="text"/>

 <input name="teacher.age" type="text"/>

 <input type="submit" value="提交表单"/>

</form>  

User类

public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

Teacher类

public classTeacher {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}


定义UserForm

public class UserForm {
private Student student;
private Teacher teacher;
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public Teacher getTeacher() {
return teacher;
}
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
}

Controller代码如下

@RequestMapping(value="")  

public void test(UserForm userForm) 

 {  

    System.out.prinfln("基础的数据类型绑定"); 

    System.out.prinfln("名字:"+userForm.getUser().getUsername());

    System.out.prinfln("地址:"+userForm.getUser().getAge()); 

    System.out.prinfln("名字:"+userForm.getTeacher().getUsername());

    System.out.prinfln("地址:"+userForm.getTeacher().getAge()); 


 

springmvc这方面还是挺不错的,在这里做个记录




0 0