【发布时间】:2019-08-02 22:21:16
【问题描述】:
Bean Validation 2.0 (JSR 380) 应该能够执行以下验证:
@Valid
public class MyBean{
private List<@NotNull String> members;
}
但它似乎只是忽略了@NotNull 注释。此外,@NotBlank 和 @NotEmpty 注释将被忽略。
我通过 Maven 在我的类路径中有 Bean Validation 2.0 API 和参考实现:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.15.Final</version>
</dependency>
我在 Jersey 中使用 Java 8 和 Tomcat 8。
我是否需要以某种方式配置 Tomcat 以使用 2.0 实现,而不是捆绑在 JDK 8 中的默认实现(例如在 Jackson 中启用 Optional<> 支持)?
【问题讨论】:
-
请同时添加您希望验证发生的代码。虽然 Tomcat 只是一个 servlet 容器,但我认为验证 API 通常有望与 Java EE 技术集成使用:看看integration chapter of the validator documentation
-
谢谢@Selaron,你的建议把我带到了jersey.github.io/documentation/latest/bean-validation.html,这是负责泽西岛Bean验证的组件。这使我找到了解决方案,我将在下面详细说明。
标签: java hibernate tomcat bean-validation