双弹簧验证

时间:2016-01-20 10:39:09

标签: java ajax hibernate validation spring-mvc

我遇到了hibernate + spring验证的问题。在执行我的ajax post-request期间,@ InitBinder注释方法调用了2次。结果我在BindingResult对象中遇到了双重错误。我使用这种依赖:

<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>

我的控制器类:

@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类在其父类中也有一个带注释的字段:

@NotBlank
private String name;

我在控制器类的构造函数中放置了' sysout ',它只有1次调用bean,因此spring-context只增加一次。有人可以说出了什么问题吗?

0 个答案:

没有答案