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

SpringMVC:使用 POJO 对象绑定请求参数值

2017-04-02 14:29 323 查看
Spring MVC 会按请求参数名和 POJO setter方法名进行自动匹配,自动为该对象填充属性值。

比如:对于请求参数为name的消息name=lgh,会去调用POJO实例的setName方法来完成对对象的赋值。

支持级联属性。如:address.province、address.city等(实际调用就是getAddress().setProvince())

说的通俗点就是,平时我们想将请求页面的表单数据接收并封装成特定对象的时候,少不了做的是在某个servlet的对应方法中从request中将各个表单参数取出,类型转换好,构造一个特定类型的对象,再把表单参数都存进去。

SpringMVC为我们简化了次操作。

项目配置可参考:http://blog.csdn.net/x_iya/article/details/68945373

package com.xiya.entities;

/**
* Created by N3verL4nd on 2017/4/1.
*/
public class Address {
private String province;
private String city;

public Address() {
}

public Address(String province, String city) {
this.province = province;
this.city = city;
}

public String getProvince() {
return province;
}

public void setProvince(String province) {
this.province = province;
}

public String getCity() {
return city;
}

public void setCity(String city) {
this.city = city;
}

@Override
public String toString() {
return "Address{" +
"province='" + province + '\'' +
", city='" + city + '\'' +
'}';
}
}
package com.xiya.entities;

/**
* Created by N3verL4nd on 2017/4/1.
*/
public class Person {
private String name;
private int age;
private Address address;

public Person(String name, int age, Address address) {
this.name = name;
this.age = age;
this.address = address;
}

public Person() {

}

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;
}

public Address getAddress() {
return address;
}

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

@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}


package com.xiya.controllers;

import com.xiya.entities.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import java.io.IOException;
import java.io.Writer;

/**
* Created by N3verL4nd on 2017/4/1.
*/
@Controller
public class HelloWorld {
@RequestMapping("/user")
public void testPojo(Writer out, Person person) throws IOException {
out.write(person.toString());
}
}


F:\>curl "http://localhost:8080/test/user?name=lgh&age=24&address.province=shandong&address.city=liaocheng"

Person{name='lgh', age=24, address=Address{province='shandong', city='liaocheng'}}

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