У меня есть следующий код в Spring контроллера:Преобразовать ошибки проверки JSR-303 для Спринга BindingResult
@Autowired
private javax.validation.Validator validator;
@RequestMapping(value = "/submit", method = RequestMethod.POST)
public String submitForm(CustomForm form) {
Set<ConstraintViolation<CustomForm>> errors = validator.validate(vustomForm);
...
}
Можно ли карта errors
к BindingResult
объекта Spring без вручную пройдя через все ошибки и добавляя их 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) {
...
}
Спасибо! Это определенно более красноречиво. –
Я не вижу метода validate, который принимает BindingResult – gstackoverflow
Если вы не видите метод проверки, который принимает результаты привязки, это означает, что ваш валидатор Validator является javax.validation.Validator. Измените его на org.springframework.validation.Validator, и все будет в порядке. Нет необходимости изменять определение компонента. – Icegras