У меня возникли проблемы с настройкой валидации для формы весной.Проверка jsr-303 в весеннем приложении mvc не подтверждается
боб Я хотел бы проверить выглядеть следующим образом:
public class RegistrationForm extends ProjectXUser {
@NotEmpty
private String password2;
@NotBlank
@AssertTrue
private Boolean agreedToConditions;
...
ProjectXUser наследует от BaseUser, который имеет некоторые дополнительные свойства, которые также аннотированные.
Мой контроллер выглядит следующим образом:
@Controller
public class RegistrationController {
private static final String REGISTRATION_JSP = "registration";
@ModelAttribute("registrationForm")
public RegistrationForm getRegistrationForm() {
return new RegistrationForm();
}
@RequestMapping(value = { "/registratie/jaar", "registratie/proef" }, method = RequestMethod.GET)
public String year() {
return "registration";
}
@RequestMapping(value = { "/registratie/jaar", "registratie/proef" }, method = RequestMethod.POST)
public ModelAndView register(@Valid RegistrationForm registrationForm, BindingResult result) {
if (result.hasErrors()) {
return new ModelAndView(REGISTRATION_JSP);
} else {
return new ModelAndView("redirect:/registratie/success");
}
}
}
Мой конфигурационный файл содержит пружинный:
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<mvc:annotation-driven />
Я прочитал в документации яровой, что если валидатор JSR-303 присутствует в классе пустая пружина будет автоматически обнаруживать его и использовать. Таким образом, я добавил hibernate-validator к моему pom.
Но когда я отлаживаю свой контроллер, я вижу, что registrationForm содержит значения, которые я заполнил. Но результаты всегда имеют 0 ошибок. Даже если я введу явный неправильный ввод в поля формы.
Возможно, вы используете , чтобы ваш @Controller работал, но является ли ваш класс RegistrationForm в сканируемом пакете? –
Да, я использую . Это scanneing org.x.y, а моя RegistrationForm находится в org.x.y.web.forms. Поэтому он должен поднять его. –
Если вы проверяете вручную с помощью 'validator.validate (registrationForm)', это работает? – tbruyelle