У меня проблемы с настройкой формы весной.
Боб, который я хотел бы проверить, выглядит следующим образом:
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 />
Я прочитал в весенней документации, что, если в классе path path присутствует валидатор jsr-303, он автоматически обнаружит его и будет использовать. Итак, я добавил hibernate-validator в мой pom.
Но когда я отлаживаю свой контроллер, я вижу, что registrationForm содержит значения, которые я заполнил. Но в результатах всегда 0 ошибок. Даже если я введу какой-то явно неверный ввод в мои поля формы.