我正在对 Java 验证进行分析。
我需要构建一个模块,使用注释并支持自定义域驱动的注释,逐个字段地验证对象 [graph]。最重要的方面是不能拒绝无效对象(例如被底层持久层),而是将其标记为无效。
例如,选择一个具有许多属性的类。如果有任何无效(例如缺失或价值不高),我想知道哪个是无效的,并在另一个地方将其标记为无效。获取所有未通过验证的字段的名称很重要,无论是原始字段还是存在验证问题的子实体。
我看过javax.validation
但我无法弄清楚 的作用ConstraintViolation
:当发现验证错误时,它由验证器返回,但AFAIK 没有显示要收集的字段名称。
问题是:您是否有任何使用 javax.validation 实现的示例,该示例显示发现对于每个经过验证的 bean 无效的字段名称列表?
另外,我可以引入自定义属性,而不是ValidatedBy
为每个要使用自定义逻辑验证的重复属性添加一个属性吗?