此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cn

验证、数据绑定和类型转换

将验证视为业务逻辑有利有弊,Spring 提供了 用于验证和数据绑定的设计,不排除其中任何一个。 具体来说,验证不应该与 Web 层相关联,并且应该易于本地化。 并且应该可以插入任何可用的验证器。考虑到这些担忧, Spring 提供了一个既基本又非常有用的 Contract 在应用程序的每一层中。Validatorspring-doc.cn

数据绑定对于将用户输入动态绑定到域非常有用 应用程序模型(或用于处理用户输入的任何对象)的Spring 提供了恰当的命名来做到这一点。和 组成了包,它主要用于但不用于 仅限于 Web 层。DataBinderValidatorDataBindervalidationspring-doc.cn

这是 Spring Framework 中的一个基本概念,被广泛使用 的地方。但是,您可能不需要直接使用 。因为 这是参考文档,但是,我们认为可能会有一些解释 次序。我们将在本章中解释它,因为,如果您要在 all,则很可能在尝试将数据绑定到对象时执行此操作。BeanWrapperBeanWrapperBeanWrapperspring-doc.cn

Spring 的和较低级别的都使用 implementations 来解析和格式化属性值。and 类型是 JavaBeans 规范的一部分,也是 在本章中解释。Spring 的包提供了一个通用类型 conversion 工具,以及用于格式化 UI 字段的更高级别包 值。您可以将这些包用作实现的更简单替代方案。本章还将讨论它们。DataBinderBeanWrapperPropertyEditorSupportPropertyEditorPropertyEditorSupportcore.convertformatPropertyEditorSupportspring-doc.cn

Spring 通过设置基础设施和适配器支持 Java Bean 验证 Spring 自己的合同。应用程序可以全局启用 Bean 验证一次, 如 Java Bean 验证中所述,并将其专门用于所有验证 需要。在 Web 层中,应用程序可以进一步注册控制器本地 Spring 实例,如 配置 DataBinder 中所述,它可以 对于插入自定义验证逻辑很有用。ValidatorValidatorDataBinderspring-doc.cn