将验证视为业务逻辑有利有弊,Spring 提供 一种用于验证和数据绑定的设计,不排除其中任何一个。 具体而言,验证不应绑定到 Web 层,并且应该易于本地化, 并且应该可以插入任何可用的验证器。考虑到这些关切, Spring 提供了一个既基本又非常可用的合约 在应用程序的每一层中。Validator

数据绑定对于让用户输入动态绑定到域非常有用 应用程序模型(或用于处理用户输入的任何对象)。春天 恰如其分地命名来做到这一点。和组成包,主要用于但不 仅限于 Web 层。DataBinderValidatorDataBindervalidation

这是 Spring 框架中的一个基本概念,并且被大量使用 的地方。但是,您可能不需要直接使用因为 这是参考文档,但是,我们认为可能会有一些解释 次序。我们将在本章中解释,因为,如果您要在 总而言之,在尝试将数据绑定到对象时,您很可能会这样做。BeanWrapperBeanWrapperBeanWrapper

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

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