Spring MVC会按请求参数名和POJO属性名进行自动匹配,自动为该对象填充属性值,支持级联属性。
如:dept.deptld,dept.address.tel
pojo:普通java对象绑定请求参数
需要新建一个User类,然后将请求参数封装在类当中,index.jsp通过映射进行user比对,如果找到请求参数,则将请求参数取出,打印到前端界面中,这种是当前常用的方法
User.java
package com.springmvc.pojo;
public class User {
private Integer id;
private String name;
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
虽然很长,但是大部分参数都是自动生成的,需要添加封装,构造器,快捷键为ALT+SHIFT+S
处理方法:
@RequestMapping(value="/testRequestParam")
public String testRequestParam(User user) {
System.out.println(user);
return "success";
}
级联:
新建一个Address类,里面包含两个参数city,street
通过User,将User里的属性及Address里的两个属性一同输出
index.jsp
<form action="springmvc/testRequestParam">
id<input type="text" name="id">
name<input type="text" name="name">
city<input type="text" name="address.city">
address<input type="text" name="address.street">
<input type="submit" value="submit">
</form>
User.java
package com.springmvc.pojo;
public class User {
private Integer id;
private String name;
private Address address;
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public User(Integer id, String name) {
super();
this.id = id;
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", address=" + address + "]";
}
}
Address.java
package com.springmvc.pojo;
public class Address {
private String city;
private String street;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
@Override
public String toString() {
return "Address [city=" + city + ", street=" + street + "]";
}
}