Не срабатывает BindingResult (Spring MVC c JSP )
Не срабатывает валидации на странице. Не могу найти причину, мой код:
Класс модели:
public class User {
private Long id;
@NotBlank(message = "The login can't be empty and has whitespace",
groups = {NotEmpty.class, NotNull.class})
@Pattern(regexp = "/^[A-Za-z0-9]+$/",
message = "The login has to have only English symbols")
private String username;
@Pattern(regexp = "/(?=.*[0-9])(?=.*[!@#$%^&*])(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z!@#$%^&*]{6,}",
message = "The password has to hava more 6 symbols, has at least 1 uppercase letter and special character")
private String password;
@NotBlank(message = "Your name can't have whitespace")
@Size(min = 3, message = "Your name has to have more 3 character")
private String name;
//getters and setters with constructors
}
Классы конфигурации:
@Configuration
public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{WebConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
}
и
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "ua.zakharov.application")
public class WebConfig implements WebMvcConfigurer {
@Bean
InternalResourceViewResolver jspViewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/view/");
resolver.setSuffix(".jsp");
return resolver;
}
}
Класс контроллер:
@Controller
@RequestMapping("/registration")
public class RegistrationController {
@Autowired
private UserService userService;
@GetMapping
public String getRegistrationPage(Model model) {
model.addAttribute("userForm", new User());
return "registration";
}
@PostMapping String createNewUser( @ModelAttribute("userForm") @Valid User user,
BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return "registration";
}
userService.save(user);
return "redirect:/login";
}
}
Использую в качестве валидатора следующую зависимость:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.0.Final</version>
</dependency>
Контроллер отрабатывает, модель с данным поступает, но не срабатывает блок с валидацией.