gpt4 book ai didi

java - Spring 4.2.3 与 Hibernate validator 5.2.2.Final 不起作用

转载 作者:行者123 更新时间:2023-12-01 21:59:02 24 4
gpt4 key购买 nike

我正在尝试将 Spring 4.2.3 与 hibernate validator v.5.2.2.Final 集成,以验证使用 REST Controller 公开的输入 JSON 数据。我没有看到任何编译时或运行时异常,但同时它不验证输入数据。

Pom.xml

 <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.2.3.RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- jsr303 validation dependencies -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.2.Final</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.el</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator-cdi</artifactId>
<version>5.2.2.Final</version>
</dependency>

Pojo java 类:

    public class RequestVO {    

@NotEmpty
private String testValidation;

@NotNull
private String testNull;

@NotBlank
private String testBlank;

.... getters and setters .....
}

@Controller
@RequestMapping("/login")
public class LoginController {

@RequestMapping(method=RequestMethod.POST, value="/user")
public @ResponseBody ResponseVO getLoginResponse(@Valid @RequestBody RequestVO request, Errors error) {

ResponseVO response = new ResponseVO ();


if (error.hasErrors()) {
System.err.println("Success");
}

return response;
}
}

最佳答案

在您的依赖项列表中,有一条注释说...jsr303 验证依赖项...。请注意,bean 验证有更新的规范 ( JSR-349 ),这很可能是您的问题。

您应该按以下方式调整依赖项

hibernate-validator-5.x.x 
validation-api-1.1.x

实现 JSR-349

或者

hibernate-validator-4.x.x
validation-api-1.0.x.

它实现了JSR-303

如果混合依赖项,验证将根本无法启动。作为解决方案建议,添加

<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>

并确保删除对 validation-api-1.0 jar 的任何依赖项

关于java - Spring 4.2.3 与 Hibernate validator 5.2.2.Final 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33926245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com