简单类型的数据绑定
表单中input的name值和Controller的参数变量名保持一致,就能完成基本数据类型的数据绑定,如果不一致可以使用@RequestParam标注实现。值得一提的是,如果Controller方法参数中定义的是基本数据类型,但是从jsp提交过来的数据为null或者""的话,会出现数据转换的异常。也就是说,必须保证表单传递过来的数据不能为null或"",所以,在开发过程中,对可能为空的数据,最好将参数数据类型定义成包装类型。
简单自定义类型的数据绑定
对象的属性名和前台input的name值一一对应即可。
复杂自定义数据类型绑定:
public class ContactInfo {
private String tel;
private String address;
//省略get,set方法
}
public class User {
private String firstName;
private String lastName;
private ContactInfo contactInfo;
//省略get,set方法
}
<form action="test.do" method="post">
<input name="firstName" value="张" /><br>
<input name="lastName" value="三" /><br>
<input name="contactInfo.tel" value="13809908909" /><br>
<input name="contactInfo.address" value="北京海淀" /><br>
<input type="submit" value="Save" />
</form>
User对象中有ContactInfo属性,Controller中的代码和第3点说的一致,但是,在jsp代码中,需要使用“属性名(对象类型的属性).属性名”来命名input的name。
数据绑定的表格:
水果 | 价格 | 数量 |
---|---|---|
香蕉 | $1 | 5 |
苹果 | $1 | 6 |
草莓 | $1 | 7 |