I have a trouble with a hibernate + spring validation. During execution of my ajax post-request the @InitBinder annotated method calls 2 times. In result I got double errors in the BindingResult object. I use this dependencies:
<spring-security.version>3.2.9.RELEASE</spring-security.version>
<validation.api.version>1.1.0.Final</validation.api.version>
<hibernate.validator.version>5.2.2.Final</hibernate.validator.version>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${version.spring}</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${validation.api.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate.validator.version}</version>
</dependency>
My controller class:
@Autowired
private MailConfigValidator mailConfigValidator;
@InitBinder("config")
public void initBinder(WebDataBinder binder) {
binder.addValidators(mailConfigValidator);
}
@ResponseBody
@RequestMapping(value = "/updateConfig", method = RequestMethod.POST)
public NamedEntity updateConfig(@RequestBody @Valid Config config, BindingResult result) {
if (result.hasErrors()) {
return new NamedEntity(0L, getMessage("config.valid.failed"));
}
configService.saveConfig(config);
return new NamedEntity(1L, getMessage("config.update.success"));
}
Config class also have an annotated field in its parent class:
@NotBlank
private String name;
I have placed 'sysout' in the constructor of controller class and it have bean called just 1 time, so spring-context rises just once. Can someone say what is wrong?