0%

第19章 数据绑定和表单标签库 19.1 数据绑定概览

第19章 数据绑定和表单标签库

数据绑定是将用户输入绑定到领域模型的一种特性。有了数据绑定,类型总是为StringHTTP请求参数,可用于填充不同类型的对象属性。数据绑定使得form bean(如前面章节中的ProductForm实例)变成多余的
为了高效地使用数据绑定,还需要Spring的表单标签库。本章着重介绍数据绑定和表单标签库,并提供范例,示范表单标签库中这些标签的用法。

19.1 数据绑定概览

基于HTTP的特性,所有HTTP请求参数的类型均为字符串。在前面的章节中,为了获取正确的产品价格,不得不将字符串解析成浮点(float)类型。为了便于复习,这里把app18aProductController类的saveProduct方法的部分代码复制过来了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@RequestMapping(
value="product_save"
)
public String saveProduct(ProductForm productForm,
Model model) {
logger.info("saveProduct called");
// no need to create and instantiate a ProductForm
// create Product
Product product = new Product();
product.setName(productForm.getName());
product.setDescription(productForm.getDescription());
try {
product.setPrice(Float.parseFloat(
productForm.getPrice()));
} catch (NumberFormatException e) {
}

之所以需要解析ProductForm中的price属性,是因为它是一个String,需要用float来填充Productprice属性。有了数据绑定,就可以用下面的代码取代上面的saveProduct方法部分:

1
2
3
4
@RequestMapping(
value="product_save"
)
public String saveProduct(Product product, Model model)

有了数据绑定,就不再需要ProductForm类,也不需要解析Product对象的price属性了。
数据绑定的另一个好处是:当输入验证失败时,它会重新生成一个HTML表单。手工编写HTML代码时,必须记住用户之前输入的值,重新填充输入字段。有了Spring的数据绑定和表单标签库后,它们就会替你完成这些工作。

原文链接: 第19章 数据绑定和表单标签库 19.1 数据绑定概览