我在 Spring 控制器中有以下代码:
@Autowired
private javax.validation.Validator validator;
@RequestMapping(value = "/submit", method = RequestMethod.POST)
public String submitForm(CustomForm form) {
Set<ConstraintViolation<CustomForm>> errors = validator.validate(form);
...
}
可以映射吗errors
到春天的BindingResult
对象,无需手动检查所有错误并将它们添加到BindingResult
?像这样的事情:
// NOTE: this is imaginary code
BindingResult bindingResult = BindingResult.fromConstraintViolations(errors);
我知道可以注释CustomForm
参数与@Valid
并让 Spring 注入BindingResult
作为另一个方法的参数,但在我的情况下这不是一个选项。
// I know this is possible, but doesn't work for me
public String submitForm(@Valid CustomForm form, BindingResult bindingResult) {
...
}
更简单的方法可能是使用 Spring 的抽象org.springframework.validation.Validator
相反,您可以通过在上下文中使用此 bean 来获取验证器:
<bean id="jsr303Validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
@Autowired @Qualifier("jsr303Validator") Validator validator;
有了这个抽象,您就可以通过这种方式使用验证器,传入您的绑定结果:
validator.validate(obj, bindingResult);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)