|
对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
验证、数据绑定和类型转换
将验证视为业务逻辑有利有弊,Spring 提供了
一种不排除其中任何一个的验证和数据绑定的设计。
具体来说,验证不应与 Web 层绑定,并且应该易于本地化,
并且应该可以插入任何可用的验证器。考虑到这些担忧,
Spring 提供了一个Validator既基本又非常可用的契约
在应用程序的每一层中。
数据绑定对于让用户输入动态绑定到域非常有用
应用程序模型(或用于处理用户输入的任何对象)。Spring
提供了恰如其分的名称DataBinder就是为了做到这一点。这Validator和DataBinder构成validationpackage,主要用于但不用于
仅限于 Web 层。
这BeanWrapper是 Spring Framework 中的一个基本概念,并且被大量使用
的地方。但是,您可能不需要使用BeanWrapper径直。因为
这是参考文档,但是,我们认为一些解释可能在
次序。我们解释BeanWrapper在本章中,因为,如果您要在
all,在尝试将数据绑定到对象时,您很可能会这样做。
Spring的DataBinder和较低级别的BeanWrapper两者都使用PropertyEditorSupport实现来分析和格式化属性值。这PropertyEditor和PropertyEditorSupport类型是 JavaBeans 规范的一部分,也是
在本章中解释。Spring的core.convertpackage 提供了通用类型
转换设施,以及更高级别的format用于格式化 UI 字段的包
值。您可以使用这些包作为更简单的替代方案PropertyEditorSupport实现。本章也讨论了它们。
Spring 通过设置基础设施和适配器支持 Java Bean 验证
Spring自己的Validator合同。应用程序可以全局启用一次 Bean 验证,
如 Java Bean 验证中所述,并专门将其用于所有验证
需要。在 Web 层中,应用程序可以进一步注册控制器本地 SpringValidator实例数DataBinder,如配置DataBinder,可以
对于插入自定义验证逻辑很有用。