如何使用Spring MVC配置Bean验证

时间:2013-09-06 15:29:30

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

我正在尝试配置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使用默认的可遍历解析器(来自hibernate验证器)进行验证。 那么,如何在spring中配置默认​​bean验证配置?

2 个答案:

答案 0 :(得分:1)

您是否尝试过添加validation.xml并在其中添加可遍历的解析程序配置?顺便问一下,你想用自定义解析器实现什么目标?

答案 1 :(得分:0)

当您使用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。