6

JSR 303 Bean Validation 包含一些开箱即用的约束,但也允许定义自定义约束。

我有一种感觉,对于很多没有随 JSR 实现一起发布的项目,存在很多共同的约束。

所以我的问题是:是否有一个(值得信赖的)库包含 commons jsr 303(Bean Validation)约束?

4

4 回答 4

4

我不知道有专门的约束库,但是 JSR 303 参考实现 Hibernate Validator 提供了几个额外的约束,例如@Email@ScriptAssert@URL(免责声明:我正在为 Hibernate Validator 做贡献)。

如果您对其他约束有其他想法或要求,请随时在我们的JIRA 实例中创建功能请求。

于 2013-02-12T14:50:23.040 回答
3

我得出了相同的结果,即没有这样的库。所以我决定分享我的一组常见约束及其验证器:https ://github.com/malkusch/validation

于 2013-12-13T19:18:45.607 回答
1

Java Bean 验证扩展 (jbvext)

自 2017 年以来,有Java Bean 验证扩展 (jbvext)库,其中包含@Before,@After@Password注释来满足 OP 的一些愿望。

⚠ 尽管这个库认为null值是失败的,但 Bean Validation 规范建议null 值是有效的。

于 2021-07-05T07:09:30.773 回答
1

Bean 验证 2.0

Bean Validation 2.0带来了几个有用的附加验证,现在是内置的。

这包括对@Past/ @PastOrPresent& @Future/与@FutureOrPresent现代java.time类型的支持,例如LocalDate取代旧的Date//类。CalendarTimestamp

您还会发现以下约束:

  • @NotEmpty/@NotBlank
  • @Email
  • @Positive// @Negative…</li>

休眠验证器

更高版本的Bean Validation规范只有一个可用的实现:Hibernate Validator

Hibernate Validator 实现了 Bean Validation 规范要求的所有约束。Hibernate Validator 也实现了其他的。

请参阅Hibernate Validator 版本 7.0.1 中的此列表。它们包括对信用卡和货币、期限、条形码和书籍 ID (ISBN)、文本长度和 Luhn 校验和、URL、集合独特性、以脚本语言编写的自定义约束等的约束。


有关现代 Bean 验证的更多信息,请参阅:

于 2021-07-05T07:26:16.153 回答