【发布时间】:2013-08-01 07:41:24
【问题描述】:
我想使用组手动验证(不使用@Valid 或@Validated)并返回一个BindingResult。
我配置了一个 spring 验证器
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" >
<property name="validationMessageSource" ref="messageSource"/>
</bean>
这是进行验证的类,它可以工作,但请注意 groups 没有被使用。
@Component
public class ObjectValidatorImpl implements ObjectValidator {
private final Validator validator;
@Autowired
public ObjectValidatorImpl(final Validator validator) {
super();
this.validator = validator;
}
@Override
public final <T> BindingResult getBindingResults(
final T objectToValidate, final Class<?>...groups) {
final DataBinder binder = new DataBinder(objectToValidate);
binder.setValidator(validator);
//ideally, I would like to set the groups on the binder here like
//binder.setGroups(groups);
binder.validate();
return binder.getBindingResult();
}
}
我不知道如何让验证器使用组,这似乎没有办法。
我想这样称呼它。
objectValidator.validate(myObject, Class1.class, Class2.class)
【问题讨论】:
标签: spring spring-mvc hibernate-validator