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