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