Я пытаюсь проверить свою форму с помощью весового валидатора, с @Validated
.Spring @Validated и @InitBinder
Однако я смущен, почему мне нужно указать Validator в @InitBinder
.
Вот мой соответствующие фрагменты кода от контроллера:
@InitBinder("organisationForm")
private void initBinder(WebDataBinder binder) {
binder.setValidator(new OrganisationFormValidator());
}
@RequestMapping(value = "/addOrganisation", method = RequestMethod.POST)
public String addOrganisationPost(@Validated @ModelAttribute("organisationForm") OrganisationForm organisationForm, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "configuration/addOrganisation";
}
Это прекрасно работает, но мне нужно будет указать @InitBinder
для каждого из моих запросов.
Spring есть способ РЕГИСТРАЦИИ всех конвертеров, как так:
@Override
public void addFormatters(FormatterRegistry formatterRegistry) {
ConversionServiceFactory.registerConverters(getConverters(),
formatterRegistry);
}
нет ли «Validation службы» весна, что смотрит через все валидатор и выбирает правильную, возможно, с использованием методы supports
подкрепленный Validator
интерфейс Spring:
public boolean supports(final Class<?> clazz) {
return OrganisationForm.class.isAssignableFrom(clazz);
}
Просто кажется странным, это не существует в Spring. Я что-то неправильно понял?
Кажется странным, что вы не используете рамки проверки. – zeroflagL
@zeroflagL Я использую [Validation Spring Framework] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/validation/Validator.html) – dkanejs
Извините, мой комментарий сформулирован плохо. Я имел в виду нечто вроде проверки боба. Это намного легче imho. – zeroflagL