【问题标题】:How to configure Bean Validation with Spring MVC如何使用 Spring MVC 配置 Bean 验证
【发布时间】:2013-09-10 18:19:56
【问题描述】:

我正在尝试配置 Spring:LocalValidatorFactoryBean 来设置我的自定义 TraversableResolver

我在我的 applicationContext.xml 中执行以下操作:

<bean id="customTraversableResolver" class="com.package.core.resolver.SimpleTraversableResolver" />

<bean id="validator"
    class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
    <property name="traversableResolver" ref="customTraversableResolver" />
</bean>

但是在运行时,控制器中的@Valid bean 使用默认的可遍历解析器(来自休眠验证器)进行验证。 那么,如何在 spring 中配置默认​​的 bean 验证配置呢?

【问题讨论】:

    标签: spring spring-mvc bean-validation hibernate-validator


    【解决方案1】:

    您是否尝试过添加validation.xml 并在其中添加可遍历的解析器配置?顺便说一句,您希望使用自定义解析器实现什么目标?

    【讨论】:

    • 有效!谢谢。但是为什么没有 XML 配置的 spring 不能配置呢?
    【解决方案2】:

    当您使用 Spring MVC 时,您必须以这种方式注册您的验证器:

    <mvc:annotation-driven validator="validator" />
    

    如果你想要方法级别的验证,那么定义 bean:

    <!-- Enable method-level validation on annotated methods via JSR-303 -->
    <bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor"
          p:validatorFactory-ref="validator" />
    

    那么你就不需要validator.xml了。

    注意:这适用于 Spring 3.2.x 和 Hibernate Validator 4.x。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多