第19章 数据绑定和表单标签库
数据绑定是将用户输入绑定到领域模型的一种特性。有了数据绑定,类型总是为String
的HTTP
请求参数,可用于填充不同类型的对象属性。数据绑定使得form bean
(如前面章节中的ProductForm
实例)变成多余的。
为了高效地使用数据绑定,还需要Spring
的表单标签库。本章着重介绍数据绑定和表单标签库,并提供范例,示范表单标签库中这些标签的用法。
19.1 数据绑定概览
基于HTTP
的特性,所有HTTP
请求参数的类型均为字符串。在前面的章节中,为了获取正确的产品价格,不得不将字符串解析成浮点(float
)类型。为了便于复习,这里把app18a
中ProductController
类的saveProduct
方法的部分代码复制过来了:
1 | ( |
之所以需要解析ProductForm
中的price
属性,是因为它是一个String
,需要用float
来填充Product
的price
属性。有了数据绑定,就可以用下面的代码取代上面的saveProduct
方法部分:
1 | ( |
有了数据绑定,就不再需要ProductForm
类,也不需要解析Product
对象的price
属性了。
数据绑定的另一个好处是:当输入验证失败时,它会重新生成一个HTML
表单。手工编写HTML
代码时,必须记住用户之前输入的值,重新填充输入字段。有了Spring
的数据绑定和表单标签库后,它们就会替你完成这些工作。