POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。
一般一张表单的内容实际可以对应一个POJO,用户在表单上填的一系列值将被填入一个对应的空POJO里,后台程序可以直接使用。
struts2使用参数拦截器,在action中要特地定义一个POJO的变量。
在SpringMVC中通过以下方法实现:
(1)准备POJO:User.java和Address.java
package com.csu.springmvc.entities;
public class User {
private String username;
private String password;
private Address address;
//如果没有无参构造器,则报错,无法装载pojo
public User() {
// TODO Auto-generated constructor stub
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public User(String username, String password, Address address) {
super();
this.username = username;
this.password = password;
this.address = address;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + ", address=" + address + "]";
}
}
package com.csu.springmvc.entities;
public class Address {
private String province;
private String street;
public Address() {
// TODO Auto-generated constructor stub
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public Address(String province, String street) {
super();
this.province = province;
this.street = street;
}
@Override
public String toString() {
return "Address [province=" + province + ", street=" + street + "]";
}
}
(2)制作表单
<form action="RequetMappingTest/testPOJO" method="POST">
username:<input type="text" name="username"/><br>
password:<input type="password" name="password"/><br>
<!-- 以下为级联属性,即属性的属性,注意 "address.----"-->
province:<input type="text" name="address.province"/><br>
street:<input type="text" name="address.street"/><br>
<input type="submit" value="OK"/>
</form>
(3)写controller方法:
@RequestMapping(value=”/testPOJO”,method=RequestMethod.POST)
public String testPojo(User user)
{
System.out.println(“testPOJO”+user);
return SUCCESS;
}
(4)运行结果: